fix: digital-mode grouping ignored by the spots already listed
The backend honours the setting: it normalises the log side and the spot's own mode through the same grouper, so an FT4 spot on a band worked in FT8 reads as worked. That was not the fault. Spot statuses are cached per call+band+mode and the cache never expired. Ticking the box in Settings therefore changed nothing on screen — every spot already listed kept the answer to the old question, and only new arrivals were judged by the new rule. The cache is now dropped when settings are saved. Also: writeUiPref swallowed a failed database write. The interface kept working from localStorage while the BACKEND — which reads some of these keys, this one among them — still saw the old value. The two disagreeing in silence is exactly the shape of this bug, so the failure is now logged.
This commit is contained in:
@@ -6318,7 +6318,14 @@ export default function App() {
|
||||
<SettingsModal
|
||||
initialSection={settingsSection}
|
||||
onClose={() => { setShowSettings(false); setSettingsSection(undefined); }}
|
||||
onSaved={() => { loadStation(); loadLists(); loadCATCfg(); reloadWk(); refreshManualRecReady(); }}
|
||||
onSaved={() => {
|
||||
loadStation(); loadLists(); loadCATCfg(); reloadWk(); refreshManualRecReady();
|
||||
// Drop the cached spot statuses. They are computed once per
|
||||
// call+band+mode and never expire, so a rule change in Settings —
|
||||
// grouping the digital modes into one slot, above all — left every
|
||||
// spot already on screen showing the answer to the OLD question.
|
||||
setSpotStatus({});
|
||||
}}
|
||||
onMainPaneChanged={(side, v) => { if (side === 'left') setMainPaneLeft(v as MainPaneKind); else setMainPaneRight(v as MainPaneKind); }}
|
||||
flexAvailable={catState.backend === 'flex'}
|
||||
icomAvailable={catState.backend === 'icom'}
|
||||
|
||||
Reference in New Issue
Block a user