import { useEffect, useState } from "react"; import { History, RefreshCw, CheckCircle, AlertTriangle, Trash2, Trash } from "lucide-react"; import { getHistory, deleteHistoryRecord, clearAllHistory } from "../services/api"; import { formatConfidence, formatDateTime } from "../utils/formatters"; export default function HistoryTable() { const [history, setHistory] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [deletingIndex, setDeletingIndex] = useState(null); const [confirmClear, setConfirmClear] = useState(false); async function fetchHistory() { setLoading(true); setError(""); try { const res = await getHistory(); if (res.success) { setHistory(res.data || []); } else { setError(res.message || "Gagal memuat riwayat"); } } catch { setError("Riwayat belum tersedia."); } finally { setLoading(false); } } useEffect(() => { fetchHistory(); }, []); async function handleDelete(index) { try { const res = await deleteHistoryRecord(index); if (res.success) { setDeletingIndex(null); fetchHistory(); } else { setError(res.message); } } catch { setError("Gagal menghapus riwayat"); } } async function handleClearAll() { try { const res = await clearAllHistory(); if (res.success) { setConfirmClear(false); fetchHistory(); } else { setError(res.message); } } catch { setError("Gagal menghapus semua riwayat"); } } return (
| Waktu | File | Plat | Status | Pemilik | Confidence | Aksi |
|---|---|---|---|---|---|---|
| {formatDateTime(h.waktu || h.time)} | {h.nama_file || h.file_name || "-"} | {h.plate || "-"} |
{h.status === "Terdaftar" ? (
|
{h.owner_name || h.owner || "-"} | {formatConfidence(h.confidence_yolo)} |
{deletingIndex === i ? (
|