diff --git a/webui/src/routes/import/-import.helpers.ts b/webui/src/routes/import/-import.helpers.ts index 54a88f78..9a1bd6e4 100644 --- a/webui/src/routes/import/-import.helpers.ts +++ b/webui/src/routes/import/-import.helpers.ts @@ -160,13 +160,14 @@ export function getAutoImportStatusText(status: ImportAutoImportStatusPayload | return 'Watching'; } -export function getAutoImportStatusClass( +export type AutoImportStatusTone = 'neutral' | 'info' | 'success'; + +export function getAutoImportStatusTone( status: ImportAutoImportStatusPayload | undefined, -): string { - if (!status?.running) return 'disabled'; - if (status.current_status === 'scanning') return 'scanning'; - if (status.current_status === 'processing') return 'processing'; - return 'active'; +): AutoImportStatusTone { + if (!status?.running || status.paused) return 'neutral'; + if (status.current_status === 'scanning' || status.current_status === 'processing') return 'info'; + return 'success'; } export function getActiveImportLines(status: ImportAutoImportStatusPayload | undefined): string[] { diff --git a/webui/src/routes/import/-route.test.tsx b/webui/src/routes/import/-route.test.tsx index f4871df7..dcaf917b 100644 --- a/webui/src/routes/import/-route.test.tsx +++ b/webui/src/routes/import/-route.test.tsx @@ -303,6 +303,7 @@ describe('import route', () => { expect(await screen.findByRole('button', { name: /^Needs Review\s*1$/ })).toBeInTheDocument(); expect(screen.getAllByText('Album A').length).toBeGreaterThan(0); + expect(screen.getByText('Watching')).toHaveAttribute('data-tone', 'success'); const intervalSelect = document.getElementById('auto-import-interval'); if (!(intervalSelect instanceof HTMLElement)) { throw new Error('auto-import interval select missing'); diff --git a/webui/src/routes/import/-ui/auto-import-tab.tsx b/webui/src/routes/import/-ui/auto-import-tab.tsx index c3f1d0ec..1c190cce 100644 --- a/webui/src/routes/import/-ui/auto-import-tab.tsx +++ b/webui/src/routes/import/-ui/auto-import-tab.tsx @@ -34,9 +34,9 @@ import { filterAutoImportResults, getActiveImportLines, getAutoImportCounts, - getAutoImportStatusClass, getAutoImportStatusMeta, getAutoImportStatusText, + getAutoImportStatusTone, getAutoImportTimeAgo, getConfidenceClass, parseAutoImportMatchData, @@ -149,7 +149,7 @@ export function AutoImportPanel({ const results = filterAutoImportResults(allResults, autoFilter); const counts = getAutoImportCounts(allResults); const activeLines = getActiveImportLines(statusQuery.data); - const statusClassName = getAutoImportStatusClass(statusQuery.data); + const statusTone = getAutoImportStatusTone(statusQuery.data); if (statusQuery.error) { return ( @@ -173,12 +173,9 @@ export function AutoImportPanel({ /> Auto-Import - + {getAutoImportStatusText(statusQuery.data)} - +
{statusQuery.data?.running ? (