import { t } from '@/lib/i18n' import type { SyncProgress } from './types' export function SyncErrorBanner(params: { error: string | null; onDismiss: () => void }): React.ReactElement | null { if (!params.error) { return null } return (
{params.error}
) } export function SyncResyncButton(params: { isSyncing: boolean; onClick: () => void }): React.ReactElement | null { if (params.isSyncing) { return null } return ( ) } export function SyncDateRange(params: { totalDays: number; startDate: string; endDate: string }): React.ReactElement | null { if (params.totalDays <= 0) { return null } return (

{t('settings.sync.daysRange', { startDate: params.startDate, endDate: params.endDate, days: params.totalDays })}

) } export function SyncProgressSection(params: { isSyncing: boolean; syncProgress: SyncProgress; progressPercentage: number }): React.ReactElement | null { if (!params.isSyncing || !params.syncProgress) { return null } return (
{t('settings.sync.progress', { current: params.syncProgress.currentStep, total: params.syncProgress.totalSteps })} {Math.round(params.progressPercentage)}%
) } export function SyncStatusMessage(params: { isSyncing: boolean; totalDays: number; isRecentlySynced: boolean }): React.ReactElement | null { if (params.isSyncing || params.totalDays !== 0) { return null } if (params.isRecentlySynced) { return

{t('settings.sync.completed')}

} return

{t('settings.sync.ready')}

}