From 833cb0d4c46599a61f87514e7aaaa8a06b4d4428 Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Thu, 26 Feb 2026 14:17:01 +0800 Subject: [PATCH] Add unsaved changes confirmation dialog in AssistantsPage to enhance user experience when opening debug window --- web/pages/Assistants.tsx | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/web/pages/Assistants.tsx b/web/pages/Assistants.tsx index 0e2c9b5..98c818d 100644 --- a/web/pages/Assistants.tsx +++ b/web/pages/Assistants.tsx @@ -107,6 +107,7 @@ export const AssistantsPage: React.FC = () => { const [saveLoading, setSaveLoading] = useState(false); const [isLoading, setIsLoading] = useState(true); const [persistedAssistantSnapshotById, setPersistedAssistantSnapshotById] = useState>({}); + const [unsavedDebugConfirmOpen, setUnsavedDebugConfirmOpen] = useState(false); const selectedAssistant = assistants.find(a => a.id === selectedId) || null; const serializeAssistant = (assistant: Assistant) => JSON.stringify(assistant); @@ -262,12 +263,17 @@ export const AssistantsPage: React.FC = () => { const handleOpenDebug = () => { if (!selectedAssistant) return; if (selectedAssistantHasUnsavedChanges) { - const proceed = window.confirm('当前助手配置尚未保存。是否继续打开调试窗口?'); - if (!proceed) return; + setUnsavedDebugConfirmOpen(true); + return; } setDebugOpen(true); }; + const handleConfirmOpenDebug = () => { + setUnsavedDebugConfirmOpen(false); + setDebugOpen(true); + }; + const toggleTool = (toolId: string) => { if (!selectedAssistant) return; const currentTools = selectedAssistant.tools || []; @@ -1199,6 +1205,36 @@ export const AssistantsPage: React.FC = () => { /> )} + setUnsavedDebugConfirmOpen(false)} + title="未保存配置提醒" + footer={ + <> + + + + } + > +
+
+ +
+
+

+ 当前助手配置尚未保存,仍要打开调试窗口吗? +

+

+ 建议先保存配置,以确保调试使用最新参数。 +

+
+
+
+ {/* Delete Confirmation Dialog */}