diff --git a/changelog.json b/changelog.json index 403de96..114bcc8 100644 --- a/changelog.json +++ b/changelog.json @@ -7,14 +7,16 @@ "ADIF export field picker: the per-group All / None buttons work again.", "Station Control: cards now pack tightly into balanced columns instead of leaving big gaps under shorter panels — a cleaner, more even dashboard.", "Main-view band map: Ctrl+↑ / Ctrl+↓ jumps to the next spot above / below the current frequency and tunes to it.", - "QSO details → Awards: the 'this contact will count for' list is now compact (CODE@REF chips, full name on hover) with a capped height, so it no longer hides the awards you've selected." + "QSO details → Awards: the 'this contact will count for' list is now compact (CODE@REF chips, full name on hover) with a capped height, so it no longer hides the awards you've selected.", + "Fixed award references (in the entry strip's Awards tab) not clearing when the callsign changes — clicking one spot then another no longer keeps the previous station's references." ], "fr": [ "Correction du thème qui revenait parfois au défaut à la réouverture d'OpsLog — il est maintenant restauré de façon fiable.", "Sélecteur de champs à l'export ADIF : les boutons Tout / Aucun par groupe refonctionnent.", "Station Control : les cartes se rangent en colonnes équilibrées et se tassent au lieu de laisser de gros trous sous les panneaux plus courts — tableau de bord plus propre et régulier.", "Band map de l'écran principal : Ctrl+↑ / Ctrl+↓ saute au spot suivant au-dessus / en dessous de la fréquence courante et s'y accorde.", - "Détails du QSO → Diplômes : la liste « ce contact comptera pour » est maintenant compacte (pastilles CODE@REF, nom complet au survol) et de hauteur limitée, elle ne masque plus les diplômes sélectionnés." + "Détails du QSO → Diplômes : la liste « ce contact comptera pour » est maintenant compacte (pastilles CODE@REF, nom complet au survol) et de hauteur limitée, elle ne masque plus les diplômes sélectionnés.", + "Correction des références de diplômes (onglet Diplômes de la bande de saisie) qui ne se vidaient pas au changement d'indicatif — cliquer un spot puis un autre ne garde plus les références de la station précédente." ] }, { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 314202d..ff7081f 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -2836,17 +2836,19 @@ export default function App() { // reload worked-before + the band matrix, making them flicker. Compared // via the ref so it's correct even from the stale UDP closure. if (v.trim().toUpperCase() === callsignValRef.current.trim().toUpperCase()) return; + // The callsign CHANGED (past the same-call guard) → drop the previous + // contact's award references. They're auto-added per call (live detection + // merges pickable refs into award_refs) or picked by hand, so without clearing + // here they carry over to the NEXT call — e.g. clicking one Italian spot + // (WAIP@RG), then another (WAIP@PG), then EJ7IRB still showing both. The new + // call's lookup re-detects its own refs right after. Covers wipe AND swap. + updateDetails({ award_refs: '' }); // QSO recorder: a non-empty callsign marks the QSO start (the recorder // keeps the pre-roll from before this); clearing it discards the take. // Recording START happens on blur (leaving the callsign field), NOT here — // you may type a call and work it minutes later. Clearing it cancels. if (v.trim() === '') { QSOAudioCancel(); setRecording(false); recordingCallRef.current = ""; - // Callsign wiped → drop this contact's award references. They are auto-added - // per call (live detection merges pickable refs into award_refs), so without - // this they'd carry over to the NEXT call — e.g. IT9AOT's ref lingering when - // you then type F4BPO, showing both in the F3 Awards tab. - updateDetails({ award_refs: '' }); } const isEmpty = v.trim() === ''; if (!isEmpty && !locks.start) {