From cb8f37304423ff421d9981839227825d4e1c7298 Mon Sep 17 00:00:00 2001 From: Adam Shiervani Date: Thu, 27 Feb 2025 16:43:05 +0100 Subject: [PATCH] feat(ui): Add dev channel toggle to advanced settings Move dev channel update option from general settings to advanced settings - Introduced new state and handler for dev channel toggle - Removed dev channel option from general settings route - Added dev channel toggle in advanced settings with error handling --- .../routes/devices.$id.settings.advanced.tsx | 110 +++++++++++------- .../devices.$id.settings.general._index.tsx | 29 ----- 2 files changed, 68 insertions(+), 71 deletions(-) diff --git a/ui/src/routes/devices.$id.settings.advanced.tsx b/ui/src/routes/devices.$id.settings.advanced.tsx index c311040..6178bd5 100644 --- a/ui/src/routes/devices.$id.settings.advanced.tsx +++ b/ui/src/routes/devices.$id.settings.advanced.tsx @@ -17,10 +17,12 @@ export default function SettingsAdvancedRoute() { const [sshKey, setSSHKey] = useState(""); const setDeveloperMode = useSettingsStore(state => state.setDeveloperMode); + const [devChannel, setDevChannel] = useState(false); + const [usbEmulationEnabled, setUsbEmulationEnabled] = useState(false); + const settings = useSettingsStore(); useEffect(() => { - send("getDevModeState", {}, resp => { if ("error" in resp) return; const result = resp.result as { enabled: boolean }; @@ -36,6 +38,11 @@ export default function SettingsAdvancedRoute() { if ("error" in resp) return; setUsbEmulationEnabled(resp.result as boolean); }); + + send("getDevChannelState", {}, resp => { + if ("error" in resp) return; + setDevChannel(resp.result as boolean); + }); }, [send, setDeveloperMode]); const getUsbEmulationState = useCallback(() => { @@ -45,7 +52,6 @@ export default function SettingsAdvancedRoute() { }); }, [send]); - const handleUsbEmulationToggle = useCallback( (enabled: boolean) => { send("setUsbEmulationState", { enabled: enabled }, resp => { @@ -101,7 +107,17 @@ export default function SettingsAdvancedRoute() { [send, setDeveloperMode], ); - const [usbEmulationEnabled, setUsbEmulationEnabled] = useState(false); + const handleDevChannelChange = (enabled: boolean) => { + send("setDevChannelState", { enabled }, resp => { + if ("error" in resp) { + notifications.error( + `Failed to set dev channel state: ${resp.error.data || "Unknown error"}`, + ); + return; + } + setDevChannel(enabled); + }); + }; return (
@@ -112,51 +128,16 @@ export default function SettingsAdvancedRoute() {
{ - settings.setDebugMode(e.target.checked); + handleDevChannelChange(e.target.checked); }} /> - - {settings.debugMode && ( - <> - -
); diff --git a/ui/src/routes/devices.$id.settings.general._index.tsx b/ui/src/routes/devices.$id.settings.general._index.tsx index 75fa7b6..f4d258d 100644 --- a/ui/src/routes/devices.$id.settings.general._index.tsx +++ b/ui/src/routes/devices.$id.settings.general._index.tsx @@ -14,7 +14,6 @@ export default function SettingsGeneralRoute() { const [send] = useJsonRpc(); const { navigateTo } = useDeviceUiNavigation(); - const [devChannel, setDevChannel] = useState(false); const [autoUpdate, setAutoUpdate] = useState(true); const [currentVersions, setCurrentVersions] = useState<{ appVersion: string; @@ -38,11 +37,6 @@ export default function SettingsGeneralRoute() { if ("error" in resp) return; setAutoUpdate(resp.result as boolean); }); - - send("getDevChannelState", {}, resp => { - if ("error" in resp) return; - setDevChannel(resp.result as boolean); - }); }, [getCurrentVersions, send]); const handleAutoUpdateChange = (enabled: boolean) => { @@ -57,18 +51,6 @@ export default function SettingsGeneralRoute() { }); }; - const handleDevChannelChange = (enabled: boolean) => { - send("setDevChannelState", { enabled }, resp => { - if ("error" in resp) { - notifications.error( - `Failed to set dev channel state: ${resp.error.data || "Unknown error"}`, - ); - return; - } - setDevChannel(enabled); - }); - }; - return (
- - { - handleDevChannelChange(e.target.checked); - }} - /> -