fix(sat,rda): the dropdown reads the live list, and the RDA buttons answer
SATELLITES: the field read the list once, when the details panel first mounted — which is at startup. A list saved in Preferences afterwards therefore did nothing until a restart. It comes from App now, which already reloads the lists when Preferences close. RDA COMPARE: a failed comparison wrote its error into the message beside the FILL DISTRICTS button, a row above — the error appeared under a button nobody had pressed while the one that had been pressed showed nothing, which reads as 'the button does nothing'. It has its own message now, and reports the two results that look like silence: no disagreement at all, and no Russian contacts to compare. Both buttons say what they are doing while they do it, and the comparison logs before it starts reading — on a remote MySQL that read is seconds of quiet.
This commit is contained in:
@@ -488,6 +488,11 @@ export default function App() {
|
||||
const { t, lang } = useI18n();
|
||||
// === Lists from settings (fallback for first paint) ===
|
||||
const [bands, setBands] = useState<string[]>(DEFAULT_BANDS);
|
||||
// The station's satellites, for the entry form's SAT_NAME dropdown. Held HERE
|
||||
// and not inside the panel: loadLists() already runs when Preferences close,
|
||||
// so a list edited there reaches the field without a restart — which is what
|
||||
// a panel reading it once at mount could not do.
|
||||
const [satellites, setSatellites] = useState<string[]>([]);
|
||||
const [modes, setModes] = useState<string[]>(DEFAULT_MODES);
|
||||
const modesRef = useRef(modes);
|
||||
useEffect(() => { modesRef.current = modes; }, [modes]);
|
||||
@@ -3081,6 +3086,7 @@ export default function App() {
|
||||
const l: ListsSettings = await GetListsSettings();
|
||||
setRstLists({ phone: (l as any).rst_phone ?? [], cw: (l as any).rst_cw ?? [], digital: (l as any).rst_digital ?? [] });
|
||||
if (l.bands && l.bands.length) setBands(l.bands);
|
||||
setSatellites([...(((l as any).satellites ?? []) as string[])].filter(Boolean).sort());
|
||||
if (l.modes && l.modes.length) {
|
||||
setModePresets(l.modes);
|
||||
const names = l.modes.map((m) => m.name);
|
||||
@@ -7051,6 +7057,7 @@ export default function App() {
|
||||
band={band}
|
||||
mode={mode}
|
||||
bands={bands}
|
||||
satellites={satellites}
|
||||
onEditQso={openEdit}
|
||||
{...(!callsign.trim() && selQso ? {
|
||||
slotCall: selQso.call, slotBand: selQso.band, slotMode: selQso.mode,
|
||||
|
||||
Reference in New Issue
Block a user