import { useState } from "react";
import { motion } from "framer-motion";
import toast from "react-hot-toast";
import { DoorOpen, Search, SlidersHorizontal } from "lucide-react";
import { searchRooms } from "../api.js";
export default function SearchRoomsPage() {
const [form, setForm] = useState({
reservationDate: "2026-07-20",
startTime: "09:00",
endTime: "10:00",
minimumCapacity: 1,
roomType: "",
requiredEquipmentName: "",
});
const [rooms, setRooms] = useState([]);
const [searched, setSearched] = useState(false);
const [loading, setLoading] = useState(false);
function updateField(field, value) {
setForm((prev) => ({ ...prev, [field]: value }));
}
async function submit(e) {
e.preventDefault();
if (!form.reservationDate || !form.startTime || !form.endTime) {
toast.error("Reservation date, start time and end time are required.");
return;
}
if (form.endTime <= form.startTime) {
toast.error("End time must be after start time.");
return;
}
if (Number(form.minimumCapacity) < 1) {
toast.error("Minimum capacity must be greater than 0.");
return;
}
setLoading(true);
setSearched(true);
try {
const result = await searchRooms({
...form,
minimumCapacity: Number(form.minimumCapacity),
});
setRooms(result);
toast.success(`${result.length} available rooms found`);
} catch (err) {
setRooms([]);
toast.error(err.message);
} finally {
setLoading(false);
}
}
return (
{room.buildingName}{room.roomCode}
{subtitle}
{subtitle}