/** * BlocklistsPage — external IP blocklist source management. * * Responsible for composition of sources, schedule, and import log sections. */ import { useCallback, useState } from "react"; import { Button, MessageBar, MessageBarBody, Text } from "@fluentui/react-components"; import { useBlocklistStyles } from "../components/blocklist/blocklistStyles"; import { BlocklistSourcesSection } from "../components/blocklist/BlocklistSourcesSection"; import { BlocklistScheduleSection } from "../components/blocklist/BlocklistScheduleSection"; import { BlocklistImportLogSection } from "../components/blocklist/BlocklistImportLogSection"; import { useRunImport } from "../hooks/useBlocklist"; import type { ImportRunResult } from "../types/blocklist"; interface ImportResultDialogProps { open: boolean; result: ImportRunResult | null; onClose: () => void; } function ImportResultDialog({ open, result, onClose }: ImportResultDialogProps): React.JSX.Element { if (!open || !result) return <>>; return (