Add unsaved changes confirmation dialog in AssistantsPage to enhance user experience when opening debug window

This commit is contained in:
Xin Wang
2026-02-26 14:17:01 +08:00
parent fbbb2e0fee
commit 833cb0d4c4

View File

@@ -107,6 +107,7 @@ export const AssistantsPage: React.FC = () => {
const [saveLoading, setSaveLoading] = useState(false);
const [isLoading, setIsLoading] = useState(true);
const [persistedAssistantSnapshotById, setPersistedAssistantSnapshotById] = useState<Record<string, string>>({});
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 = () => {
/>
)}
<Dialog
isOpen={unsavedDebugConfirmOpen}
onClose={() => setUnsavedDebugConfirmOpen(false)}
title="未保存配置提醒"
footer={
<>
<Button variant="ghost" onClick={() => setUnsavedDebugConfirmOpen(false)}>
</Button>
<Button onClick={handleConfirmOpenDebug}>
</Button>
</>
}
>
<div className="flex items-center space-x-4">
<div className="p-3 bg-amber-500/10 rounded-full">
<AlertTriangle className="h-6 w-6 text-amber-400" />
</div>
<div>
<p className="text-sm text-foreground text-white">
</p>
<p className="text-xs text-muted-foreground mt-1">
使
</p>
</div>
</div>
</Dialog>
{/* Delete Confirmation Dialog */}
<Dialog
isOpen={!!deleteId}