diff --git a/frontend/src/components/ClusterGrid.tsx b/frontend/src/components/ClusterGrid.tsx index 2c10d57..602abac 100644 --- a/frontend/src/components/ClusterGrid.tsx +++ b/frontend/src/components/ClusterGrid.tsx @@ -124,11 +124,16 @@ const makeColCatalog = (t: TFn): ColEntry[] => [ headerName: t('clg2.c.call'), field: 'dx_call' as any, width: 120, defaultVisible: true, cellClass: 'font-mono', - // New DXCC entity → fill the whole cell (no padded pill, so calls stay - // aligned with non-new rows). Text colour also flags worked-call vs new-call. - cellStyle: (p: any): any => (statusFor(p)?.status === 'new' - ? { backgroundColor: '#ffe4e6', color: '#be123c', fontWeight: 700 } - : { color: statusFor(p)?.worked_call ? '#0369a1' : '#b8410c', fontWeight: 700 }), + // Only STATUS calls get a colour: new DXCC entity → filled cell (no padded + // pill, so calls stay aligned), worked-call → blue. A plain spot inherits the + // theme's normal text colour (var(--foreground)) so callsigns blend in with + // the rest of the row across every theme instead of always shouting orange. + cellStyle: (p: any): any => { + const s = statusFor(p); + if (s?.status === 'new') return { backgroundColor: '#ffe4e6', color: '#be123c', fontWeight: 700 }; + if (s?.worked_call) return { color: '#0369a1', fontWeight: 700 }; + return { fontWeight: 700 }; + }, tooltipValueGetter: (p: any) => { const s = statusFor(p); return s?.status === 'new' ? t('clg2.tipNewDxcc', { country: s?.country ?? '' }) : s?.worked_call ? t('clg2.tipWorkedCall') : undefined; diff --git a/frontend/src/components/RecentQSOsGrid.tsx b/frontend/src/components/RecentQSOsGrid.tsx index 8933f82..7982adb 100644 --- a/frontend/src/components/RecentQSOsGrid.tsx +++ b/frontend/src/components/RecentQSOsGrid.tsx @@ -92,7 +92,7 @@ export const makeColCatalog = (t: TFn): ColEntry[] => [ // ── QSO basics ── { group: 'QSO', label: t('rqg.c.qso_date'), colId: 'qso_date', headerName: t('rqg.c.qso_date'), field: 'qso_date' as any, width: 150, cellClass: 'font-mono', valueFormatter: (p) => fmtDateUTC(p.value), sort: 'desc', defaultVisible: true }, { group: 'QSO', label: t('rqg.c.qso_date_off'), colId: 'qso_date_off', headerName: t('rqg.c.qso_date_off'), field: 'qso_date_off' as any, width: 150, cellClass: 'font-mono', valueFormatter: (p) => fmtDateUTC(p.value) }, - { group: 'QSO', label: t('rqg.c.callsign'), colId: 'callsign', headerName: t('rqg.c.callsign'), field: 'callsign' as any, width: 110, cellClass: 'font-mono font-semibold', cellStyle: { color: '#b8410c' }, defaultVisible: true }, + { group: 'QSO', label: t('rqg.c.callsign'), colId: 'callsign', headerName: t('rqg.c.callsign'), field: 'callsign' as any, width: 110, cellClass: 'font-mono font-semibold', defaultVisible: true }, { group: 'QSO', label: t('rqg.c.band'), colId: 'band', headerName: t('rqg.c.band'), field: 'band' as any, width: 75, cellClass: 'font-mono', defaultVisible: true }, { group: 'QSO', label: t('rqg.c.band_rx'), colId: 'band_rx', headerName: t('rqg.c.band_rx'), field: 'band_rx' as any, width: 75, cellClass: 'font-mono' }, { group: 'QSO', label: t('rqg.c.mode'), colId: 'mode', headerName: t('rqg.c.mode'), field: 'mode' as any, width: 80, cellClass: 'font-mono', defaultVisible: true },