From 5dfe0881187567883eff5d2409d3104d9113dbe3 Mon Sep 17 00:00:00 2001 From: accius Date: Mon, 2 Feb 2026 23:32:16 -0500 Subject: [PATCH] persistance --- src/App.jsx | 6 ++++-- src/components/PSKReporterPanel.jsx | 20 ++++++++++++++------ src/components/SolarPanel.jsx | 6 ++++-- src/components/WorldMap.jsx | 4 +++- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index e23bee4..a00a75b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -99,7 +99,9 @@ const App = () => { const [showSettings, setShowSettings] = useState(false); const [showDXFilters, setShowDXFilters] = useState(false); const [showPSKFilters, setShowPSKFilters] = useState(false); - const [weatherExpanded, setWeatherExpanded] = useState(false); + const [weatherExpanded, setWeatherExpanded] = useState(() => { + try { return localStorage.getItem('openhamclock_weatherExpanded') === 'true'; } catch { return false; } + }); const [tempUnit, setTempUnit] = useState(() => { try { return localStorage.getItem('openhamclock_tempUnit') || 'F'; } catch { return 'F'; } }); @@ -628,7 +630,7 @@ const App = () => { {/* Compact summary row — always visible */}
setWeatherExpanded(!weatherExpanded)} + onClick={() => { const next = !weatherExpanded; setWeatherExpanded(next); try { localStorage.setItem('openhamclock_weatherExpanded', next.toString()); } catch {} }} style={{ display: 'flex', alignItems: 'center', gap: '8px', cursor: 'pointer', userSelect: 'none', flex: 1, minWidth: 0, diff --git a/src/components/PSKReporterPanel.jsx b/src/components/PSKReporterPanel.jsx index c4193a6..b73d7e4 100644 --- a/src/components/PSKReporterPanel.jsx +++ b/src/components/PSKReporterPanel.jsx @@ -32,11 +32,19 @@ const PSKReporterPanel = ({ showWSJTXOnMap, onToggleWSJTXMap }) => { - const [panelMode, setPanelMode] = useState('psk'); - const [activeTab, setActiveTab] = useState('tx'); + const [panelMode, setPanelMode] = useState(() => { + try { const s = localStorage.getItem('openhamclock_pskPanelMode'); return s || 'psk'; } catch { return 'psk'; } + }); + const [activeTab, setActiveTab] = useState(() => { + try { const s = localStorage.getItem('openhamclock_pskActiveTab'); return s || 'tx'; } catch { return 'tx'; } + }); const [wsjtxTab, setWsjtxTab] = useState('decodes'); const [wsjtxFilter, setWsjtxFilter] = useState('all'); // 'all' | 'cq' | band name + // Persist panel mode and active tab + const setPanelModePersist = (v) => { setPanelMode(v); try { localStorage.setItem('openhamclock_pskPanelMode', v); } catch {} }; + const setActiveTabPersist = (v) => { setActiveTab(v); try { localStorage.setItem('openhamclock_pskActiveTab', v); } catch {} }; + // PSKReporter hook const { txReports, txCount, rxReports, rxCount, @@ -174,10 +182,10 @@ const PSKReporterPanel = ({ }}> {/* Mode toggle */}
- -
@@ -244,10 +252,10 @@ const PSKReporterPanel = ({
{panelMode === 'psk' ? ( <> - - diff --git a/src/components/SolarPanel.jsx b/src/components/SolarPanel.jsx index 6667631..6930d06 100644 --- a/src/components/SolarPanel.jsx +++ b/src/components/SolarPanel.jsx @@ -41,7 +41,9 @@ export const SolarPanel = ({ solarIndices }) => { return 'image'; } catch (e) { return 'image'; } }); - const [imageType, setImageType] = useState('0193'); + const [imageType, setImageType] = useState(() => { + try { return localStorage.getItem('openhamclock_solarImageType') || '0193'; } catch { return '0193'; } + }); const [xrayData, setXrayData] = useState(null); const [xrayLoading, setXrayLoading] = useState(false); @@ -417,7 +419,7 @@ export const SolarPanel = ({ solarIndices }) => { {mode === 'image' && (