On air — active QSOs
- double-click callsign → log & end QSO
+ double-click → edit all fields · "Log & end" to save
-
+
ref={activeGrid}
theme={hamlogTheme}
rowData={active}
columnDefs={activeCols}
defaultColDef={defaultColDef}
- onRowDoubleClicked={onActiveDblClick}
- onCellValueChanged={onActiveCellChanged}
+ onRowDoubleClicked={(e) => e.data && setEditingDraft(e.data)}
+ rowSelection={{ mode: 'singleRow', checkboxes: false, enableClickSelection: true }}
animateRows={false}
- getRowId={(p) => String((p.data as any).callsign)}
- stopEditingWhenCellsLoseFocus
+ getRowId={(p) => String((p.data as any).id)}
/>
{isOpen && active.length > 0 && (
@@ -341,6 +338,20 @@ export function NetControlPanel({ onLogged, rstChoices }: { onLogged?: () => voi
+ {/* Full-QSO edit modal for the selected on-air draft. Save writes back to
+ the in-memory draft (NetUpdateActive); Delete cancels it (no log). */}
+ {editingDraft && (
+