From d24f9e2adfd5422dff57cc1db4b2fa279838464b Mon Sep 17 00:00:00 2001 From: Shaun Arman Date: Fri, 12 Jun 2026 21:46:52 -0500 Subject: [PATCH] feat: move auto-updater to Settings > Updater; collapse Proxmox nav by default - Restore Settings/Updater.tsx with channel selection and update check UI - Strip updater state/functions/Card from Settings/Proxmox.tsx; update description - Add Updater to settingsItems and /settings/updater route in App.tsx - Replace always-open Proxmox NavLink with accordion toggle (expandedSections state) - Add ChevronDown/RefreshCw to lucide imports; promote useLocation from void call --- src/App.tsx | 43 +++++--- src/pages/Settings/Proxmox.tsx | 181 +-------------------------------- src/pages/Settings/Updater.tsx | 170 +++++++++++++++++++++++++++++++ 3 files changed, 201 insertions(+), 193 deletions(-) create mode 100644 src/pages/Settings/Updater.tsx diff --git a/src/App.tsx b/src/App.tsx index e1c86f71..e7404019 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -11,10 +11,12 @@ import { Plug, ChevronLeft, ChevronRight, + ChevronDown, Sun, Moon, Terminal, FileCode, + RefreshCw, Server, Server as ServerIcon, Settings, @@ -53,6 +55,7 @@ import { ProxmoxHAPage } from "@/pages/Proxmox/HAPage"; import { ProxmoxTasksPage } from "@/pages/Proxmox/TasksPage"; import { ProxmoxCertificatesPage } from "@/pages/Proxmox/CertificatesPage"; import { ProxmoxSettings } from "@/pages/Settings/Proxmox"; +import { Updater } from "@/pages/Settings/Updater"; const navItems = [ { to: "/", icon: Home, label: "Dashboard" }, @@ -88,15 +91,17 @@ const settingsItems = [ { to: "/settings/integrations", icon: Link, label: "Integrations" }, { to: "/settings/mcp", icon: Plug, label: "MCP Servers" }, { to: "/settings/security", icon: Shield, label: "Security" }, + { to: "/settings/updater", icon: RefreshCw, label: "Updater" }, { to: "/settings/proxmox", icon: Settings, label: "Proxmox" }, ]; export default function App() { const [collapsed, setCollapsed] = useState(false); + const [expandedSections, setExpandedSections] = useState([]); const [appVersion, setAppVersion] = useState(""); const { theme, setTheme, setProviders, getActiveProvider } = useSettingsStore(); const cleanupDone = useRef(false); - void useLocation(); + const location = useLocation(); useEffect(() => { getAppVersionCmd().then(setAppVersion).catch(() => {}); @@ -171,30 +176,41 @@ export default function App() {