diff --git a/client/src/App.tsx b/client/src/App.tsx index 7d01889..4ddb15a 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -2,11 +2,12 @@ import { useEffect, useState } from "react"; import type { SystemMetrics } from "@shared/types.js"; import { api } from "./lib/api.js"; -import type { DashboardSummary } from "./panels/Dashboard.js"; +import type { DashboardSummary, ViewMode } from "./panels/Dashboard.js"; import { HermesPanel } from "./panels/HermesPanel.js"; import { Dashboard } from "./panels/Dashboard.js"; import { TerminalPanel } from "./panels/TerminalPanel.js"; import { SettingsModal } from "./panels/SettingsModal.js"; +import { Icon } from "./components/ui-kit.js"; import { applyTheme, getInitialTheme, nextTheme, type Theme } from "./lib/theme.js"; const EMPTY_SUMMARY: DashboardSummary = { machines: 0, updates: 0, errors: 0, running: 0 }; @@ -17,6 +18,14 @@ export function App() { const [metrics, setMetrics] = useState(null); const [theme, setTheme] = useState(() => getInitialTheme()); const [settingsOpen, setSettingsOpen] = useState(false); + const [adding, setAdding] = useState(false); + const [view, setView] = useState( + () => (localStorage.getItem("su-view") as ViewMode) ?? "grid", + ); + function changeView(mode: ViewMode) { + setView(mode); + localStorage.setItem("su-view", mode); + } useEffect(() => { applyTheme(theme); @@ -57,6 +66,15 @@ export function App() { {summary.errors} erreurs
+
+ + +
+ @@ -66,7 +84,14 @@ export function App() {
- +