import { faCircle, faCircleCheck, faCircleXmark, faClock, faSpinner, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useSync } from "../stores"; import { SyncStatus } from "../sync"; export function SyncStatusIndicator() { const { isOnline, isSyncing, pendingCount, lastError, status } = useSync(); const getStatusText = (): string => { if (!isOnline) { return "Offline"; } if (isSyncing) { return "Syncing..."; } if (status === SyncStatus.Error && lastError) { return "Sync error"; } if (pendingCount > 0) { return `${pendingCount} pending`; } return "Synced"; }; const getStatusStyles = (): string => { if (!isOnline) { return "bg-muted/10 text-muted"; } if (isSyncing) { return "bg-info/10 text-info"; } if (status === SyncStatus.Error) { return "bg-error/10 text-error"; } if (pendingCount > 0) { return "bg-warning/10 text-warning"; } return "bg-success/10 text-success"; }; const getStatusIcon = () => { if (!isOnline) { return (