"use client"; import { type ReactNode, useState, useEffect } from "react"; import { useAuditLogs, useAuditLogFilter, exportAuditLogsCsv, } from "@/hooks/use-audit-logs"; import { useToast } from "@/providers/toast-provider"; import { AuditLogsTabs } from "@/components/audit-logs-tabs"; import { PageHeader, PaperCard, Input, Select, Button, LoadingState, ErrorState, EmptyState, Table, TableRow, TableCell, Pagination, } from "@/components/ui"; import { t } from "@/lib/i18n"; export default function AuditLogsPage(): ReactNode { const { filter, setPage, setSearch, setAction } = useAuditLogFilter(); const { data, loading, error } = useAuditLogs(filter); const { show } = useToast(); const [searchInput, setSearchInput] = useState(""); useEffect(() => { const timer = setTimeout(() => setSearch(searchInput), 300); return () => clearTimeout(timer); }, [searchInput, setSearch]); const handleExport = () => { if (!data || data.items.length === 0) { show("warning", "暂无数据可导出"); return; } exportAuditLogsCsv(data.items); show("success", "已导出 CSV"); }; return (