"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { Calendar, Clock, Save, X, AlertTriangle } from "lucide-react"; export default function AddBookingPage() { const router = useRouter(); const [isLoading, setIsLoading] = useState(false); // State untuk form input const [formData, setFormData] = useState({ room: "Ruang T-301", date: "", startTime: "", endTime: "", purpose: "", }); const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value }); }; // --- LOGIKA VALIDASI (Business Logic) --- const validateBookingRules = () => { // 1. Cek kelengkapan data dasar if (!formData.date || !formData.startTime || !formData.endTime) { alert("Mohon lengkapi Tanggal dan Jam terlebih dahulu."); return false; } // 2. Ambil Jam Mulai const startHour = parseInt(formData.startTime.split(":")[0]); // 3. Cek Jam Khusus (Diatas 21:00 ATAU Sebelum 06:00) const isSpecialTime = startHour >= 21 || startHour < 6; if (isSpecialTime) { const bookingDate = new Date(formData.date); const today = new Date(); // Reset jam agar perhitungan murni berdasarkan tanggal bookingDate.setHours(0, 0, 0, 0); today.setHours(0, 0, 0, 0); // Hitung selisih hari const diffTime = bookingDate.getTime() - today.getTime(); const diffDays = diffTime / (1000 * 3600 * 24); // ATURAN: Harus H-3 if (diffDays < 3) { alert( `Gagal! Peminjaman di jam khusus (${formData.startTime}) harus dilakukan minimal 3 hari sebelumnya.\n\n` + `Jarak peminjaman Anda: ${diffDays} hari dari sekarang.` ); return false; } } return true; }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); // Jalankan validasi if (!validateBookingRules()) return; setIsLoading(true); // --- MOCK API CALL --- console.log("Mengirim Data:", formData); setTimeout(() => { alert("Berhasil! Jadwal telah disimpan."); setIsLoading(false); // Redirect kembali ke halaman List Booking router.push("/dashboard/bookings"); }, 1500); }; return (
{/* Header Halaman */}

Buat Peminjaman Baru

{/* Form Container */}

Formulir Pengajuan Jadwal

{/* --- Baris 1: Ruangan & Tanggal --- */}
{/* Input Ruangan */}
{/* Input Tanggal */}
{/* --- Baris 2: Waktu Mulai & Selesai --- */}
{/* Info Validasi */}

Peminjaman jam 21:00 - 06:00 wajib H-3.

{/* --- Baris 3: Keperluan --- */}
{/* --- Tombol Aksi --- */}
); }