From 689d1cc90240a2aad4a9c3f79f1b01b1b9062b89 Mon Sep 17 00:00:00 2001 From: Gregory Salaun Date: Wed, 5 Aug 2026 17:13:34 +0200 Subject: [PATCH] feat(qso-edit): QRZ button to open the station's qrz.com profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the main entry form: a QRZ ↗ button by the callsign in the QSO edit modal opens https://www.qrz.com/db/ via OpenExternalURL. --- changelog.json | 8 ++++++-- frontend/src/components/QSOEditModal.tsx | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/changelog.json b/changelog.json index 3a61ba1..dd80656 100644 --- a/changelog.json +++ b/changelog.json @@ -2,8 +2,12 @@ { "version": "0.23.7", "date": "", - "en": [], - "fr": [] + "en": [ + "QSO edit: added the QRZ ↗ button next to the callsign, like the main entry form — one click opens that station's qrz.com profile." + ], + "fr": [ + "Édition de QSO : ajout du bouton QRZ ↗ à côté de l'indicatif, comme dans le formulaire de saisie — un clic ouvre le profil qrz.com de la station." + ] }, { "version": "0.23.6", diff --git a/frontend/src/components/QSOEditModal.tsx b/frontend/src/components/QSOEditModal.tsx index 99a849a..4c67369 100644 --- a/frontend/src/components/QSOEditModal.tsx +++ b/frontend/src/components/QSOEditModal.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useRef, useState } from 'react'; import { Trash2, Search, Loader2, CalendarDays } from 'lucide-react'; -import { LookupCallsign, LookupCallsignFresh, DXCCForCountry, GetAwardDefs, ComputeQSOAwardRefs, GetListsSettings } from '../../wailsjs/go/main/App'; +import { LookupCallsign, LookupCallsignFresh, DXCCForCountry, GetAwardDefs, ComputeQSOAwardRefs, GetListsSettings, OpenExternalURL } from '../../wailsjs/go/main/App'; import { rstOptions, type RSTLists } from '@/lib/rst'; import { AwardRefSelector } from '@/components/AwardRefSelector'; import { AdifExtrasEditor } from '@/components/AdifExtrasEditor'; @@ -466,7 +466,22 @@ export function QSOEditModal({ qso, onSave, onDelete, onClose, countries = [], b {/* Top: Callsign + RST + Fetch */}
- +
+ + {(draft.callsign ?? '').trim() && ( + + )} +
set('callsign', e.target.value)} />