import { Button, Badge, Table, TableBody, TableCell, TableCellLayout, TableHeader, TableHeaderCell, TableRow, Text, MessageBar, MessageBarBody, Spinner } from "@fluentui/react-components"; import { ArrowClockwiseRegular } from "@fluentui/react-icons"; import { useCommonSectionStyles } from "../../components/commonStyles"; import { useImportLog } from "../../hooks/useImportLog"; import { useBlocklistStyles } from "./blocklistStyles"; import { formatDate } from "../../utils/formatDate"; function formatUnixTimestamp(unixTs: number, timezone: string | null | undefined): string { return formatDate(new Date(unixTs * 1000).toISOString(), timezone); } export function BlocklistImportLogSection(): React.JSX.Element { const styles = useBlocklistStyles(); const sectionStyles = useCommonSectionStyles(); const { data, loading, error, page, setPage, refresh } = useImportLog(undefined, 20); return (
Import Log
{error && ( {error} )} {loading ? (
) : !data || data.items.length === 0 ? (
No import runs recorded yet.
) : ( <>
Timestamp Source URL Imported Skipped Status {data.items.map((entry) => ( {formatUnixTimestamp(entry.timestamp, undefined)} {entry.source_url} {entry.ips_imported} {entry.ips_skipped} {entry.errors ? ( Error ) : ( OK )} ))}
{data.total_pages > 1 && (
Page {page} of {data.total_pages}
)} )}
); }