"use client"; import { useEffect, useState } from "react"; import axios from "axios"; import { useRouter } from "next/navigation"; import { ArrowLeft, Calendar, Clock, MapPin, AlertCircle, CheckCircle, XCircle, Key } from "lucide-react"; interface Booking { booking_id: string; room: { name: string; floor: string; }; start_time: string; end_time: string; purpose: string; status: string; redeem_code: string; created_at: string; } export default function HistoryPage() { const router = useRouter(); const [bookings, setBookings] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const token = localStorage.getItem("token"); if (!token) { router.push("/login"); return; } fetchHistory(token); }, []); const fetchHistory = async (token: string) => { try { // PERBAIKAN: Ubah /api/bookings menjadi /api/my-bookings const response = await axios.get("http://172.17.110.6:8080/api/my-bookings", { headers: { Authorization: `Bearer ${token}` }, }); setBookings(response.data.data || []); } catch (error) { console.error("Gagal ambil history:", error); } finally { setLoading(false); } }; const formatDate = (isoString: string) => { const date = new Date(isoString); return date.toLocaleDateString("id-ID", { day: "numeric", month: "short", year: "numeric", hour: "2-digit", minute: "2-digit" }); }; const getStatusBadge = (status: string) => { switch (status) { case "Approved": return Disetujui; case "Rejected": return Ditolak; default: return Menunggu; } }; if (loading) return
Memuat riwayat...
; return (
{bookings.length === 0 ? (

Belum ada riwayat booking.

) : (
{bookings.map((item) => (

{item.room.name}

{item.room.floor}
{getStatusBadge(item.status)}

Waktu Mulai

{formatDate(item.start_time)}

Waktu Selesai

{formatDate(item.end_time)}

Keperluan:

{item.purpose}

{item.status === "Approved" && item.redeem_code && (

Kode Akses Ruangan

{item.redeem_code}

*Masukkan kode ini pada layar ruangan.

)}
))}
)}
); }