import { useState } from "react"; import { useFetch } from "../../hooks"; import { fmtDate, useT } from "../../i18n"; interface Entry { ts: number; user: string; action: string; detail: string; ip: string; } /** Admin: audit log and backup download. */ export function Audit() { const t = useT(); const [filter, setFilter] = useState(""); const { data, reload } = useFetch(`/audit?limit=500${filter ? `&action=${encodeURIComponent(filter)}` : ""}`); return ( <>

{t("audit.backup")}

{t("audit.backupHint")}
{t("audit.download")}

{t("audit.title")}

{data?.map((e, i) => ( ))}
{t("audit.time")} {t("stats.user")} {t("audit.action")} {t("audit.detail")} IP
{fmtDate(e.ts)} {e.user || "–"} {e.action} {e.detail} {e.ip}
{data?.length === 0 &&
–
}
); }