From 8623ab896dbc8fe06829ef3f8a400fad0871b50d Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Thu, 9 Oct 2025 09:06:50 +0800 Subject: [PATCH] fix: improve widget deletion UX and add debug logs for persistence --- src/ui/Desktop/Apps/Server/Server.tsx | 39 ++++++++++++++++++++------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/src/ui/Desktop/Apps/Server/Server.tsx b/src/ui/Desktop/Apps/Server/Server.tsx index 54cad5eb..70c4d274 100644 --- a/src/ui/Desktop/Apps/Server/Server.tsx +++ b/src/ui/Desktop/Apps/Server/Server.tsx @@ -67,7 +67,11 @@ export function Server({ const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false); const statsConfig = React.useMemo((): StatsConfig => { + console.log("[Load] Current host config:", currentHostConfig); + console.log("[Load] statsConfig field:", currentHostConfig?.statsConfig); + if (!currentHostConfig?.statsConfig) { + console.log("[Load] No statsConfig found, using default"); return DEFAULT_STATS_CONFIG; } try { @@ -75,8 +79,10 @@ export function Server({ typeof currentHostConfig.statsConfig === "string" ? JSON.parse(currentHostConfig.statsConfig) : currentHostConfig.statsConfig; + console.log("[Load] Parsed statsConfig:", parsed); return parsed?.widgets ? parsed : DEFAULT_STATS_CONFIG; - } catch { + } catch (error) { + console.error("[Load] Failed to parse statsConfig:", error); return DEFAULT_STATS_CONFIG; } }, [currentHostConfig?.statsConfig]); @@ -128,17 +134,20 @@ export function Server({ try { const newConfig: StatsConfig = { widgets }; + console.log("[Save] Saving layout:", newConfig); const { updateSSHHost } = await import("@/ui/main-axios.ts"); - await updateSSHHost(currentHostConfig.id, { + const result = await updateSSHHost(currentHostConfig.id, { ...currentHostConfig, statsConfig: JSON.stringify(newConfig), } as any); + console.log("[Save] Server response:", result); setHasUnsavedChanges(false); toast.success(t("serverStats.layoutSaved")); window.dispatchEvent(new Event("ssh-hosts:changed")); } catch (error) { + console.error("[Save] Failed to save layout:", error); toast.error(t("serverStats.failedToSaveLayout")); } }; @@ -153,13 +162,17 @@ export function Server({ {isEditMode && ( )} -
+

{config.label} @@ -205,13 +218,17 @@ export function Server({ {isEditMode && ( )} -
+

{config.label} @@ -268,13 +285,17 @@ export function Server({ {isEditMode && ( )} -
+

{config.label} @@ -663,7 +684,7 @@ export function Server({ isDraggable={isEditMode} isResizable={isEditMode} onLayoutChange={handleLayoutChange} - draggableHandle={isEditMode ? undefined : ".no-drag"} + draggableHandle={isEditMode ? ".drag-handle" : ".no-drag"} > {widgets.map((widget) => (