"use client"; import { useEffect, useState } from "react"; import { getAudit } from "@/services/audit"; import { usePermissions } from "@/hooks/usePermissions"; import { useApiStore } from "@/store/uiStore"; import { useLocaleStore } from "@/store/uiStore"; import DataTable from "@/components/ui/Table"; import PageHeader from "@/components/ui/PageHeader"; import EmptyState from "@/components/ui/EmptyState"; import Spinner from "@/components/ui/Spinner"; import { AuditItem } from "@/types/api"; import { t } from "@/lib/locale"; export default function AuditPage() { const permissions = usePermissions(); const addToast = useApiStore((s) => s.addToast); const locale = useLocaleStore((s) => s.locale); const [items, setItems] = useState([]); const [loading, setLoading] = useState(false); useEffect(() => { const load = async () => { if (!permissions.isAdmin) { setLoading(false); return; } setLoading(true); try { const data = await getAudit(50); setItems(data); } catch (error) { addToast((error as { message?: string })?.message || t("loadFailed", locale), "error"); } finally { setLoading(false); } }; load(); }, [permissions.isAdmin, addToast, locale]); if (!permissions.isAdmin) { return (
{t("forbidden", locale)}
); } return (
{loading && } {!loading && items.length === 0 ? ( ) : (
)}
); }