"use client"; import { useEffect, useState } from "react"; import axios from "axios"; import { useRouter } from "next/navigation"; import { CalendarPlus, Clock, FileText, MapPin, CheckCircle2 } from "lucide-react"; export default function AddBookingPage() { const router = useRouter(); const [rooms, setRooms] = useState([]); const [loading, setLoading] = useState(true); const [submitLoading, setSubmitLoading] = useState(false); // State Form const [selectedRoomId, setSelectedRoomId] = useState(""); const [startTime, setStartTime] = useState(""); const [endTime, setEndTime] = useState(""); const [purpose, setPurpose] = useState(""); // Ambil daftar ruangan untuk Dropdown useEffect(() => { const fetchRooms = async () => { try { const token = localStorage.getItem("token"); const res = await axios.get("http://172.17.110.6:8080/api/rooms", { headers: { Authorization: `Bearer ${token}` }, }); setRooms(res.data.data); } catch (error) { console.error("Gagal memuat ruangan", error); } finally { setLoading(false); } }; fetchRooms(); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!selectedRoomId) return alert("Pilih ruangan terlebih dahulu!"); setSubmitLoading(true); const token = localStorage.getItem("token"); try { const startISO = new Date(startTime).toISOString(); const endISO = new Date(endTime).toISOString(); await axios.post("http://172.17.110.6:8080/api/bookings", { room_id: parseInt(selectedRoomId), start_time: startISO, end_time: endISO, purpose: purpose, }, { headers: { Authorization: `Bearer ${token}` }, }); alert("Booking Berhasil Diajukan!"); router.push("/dashboard/bookings/calendar"); // Arahkan ke jadwal setelah sukses } catch (error: any) { alert("GAGAL: " + (error.response?.data?.error || "Terjadi kesalahan")); } finally { setSubmitLoading(false); } }; if (loading) return
Memuat formulir...
; return (

Buat Booking Baru

Isi detail di bawah ini untuk memesan ruangan kelas S-CLASS.

{/* Pilih Ruangan */}
{/* Waktu Mulai & Selesai (Grid 2 Kolom) */}
setStartTime(e.target.value)} />
setEndTime(e.target.value)} />
{/* Keperluan */}