From 4bb22046e07c99d6f8bcf77d236ca8b7716ea901 Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 1 Apr 2025 15:44:36 +0800 Subject: [PATCH] Improve toast notifications and document clearing flow - Enhanced Toaster component with theme, close button and rich colors - Added immediate feedback for document clearing operation --- lightrag_webui/src/AppRouter.tsx | 7 +++- .../documents/ClearDocumentsDialog.tsx | 37 +++++++++---------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lightrag_webui/src/AppRouter.tsx b/lightrag_webui/src/AppRouter.tsx index 9aec0a14..e7130ad6 100644 --- a/lightrag_webui/src/AppRouter.tsx +++ b/lightrag_webui/src/AppRouter.tsx @@ -80,7 +80,12 @@ const AppRouter = () => { - + ) diff --git a/lightrag_webui/src/components/documents/ClearDocumentsDialog.tsx b/lightrag_webui/src/components/documents/ClearDocumentsDialog.tsx index 1ccbd4a5..e6b40356 100644 --- a/lightrag_webui/src/components/documents/ClearDocumentsDialog.tsx +++ b/lightrag_webui/src/components/documents/ClearDocumentsDialog.tsx @@ -61,6 +61,14 @@ export default function ClearDocumentsDialog({ onDocumentsCleared }: ClearDocume try { const result = await clearDocuments() + if (result.status !== 'success') { + toast.error(t('documentPanel.clearDocuments.failed', { message: result.message })) + setConfirmText('') + return + } + + toast.success(t('documentPanel.clearDocuments.success')) + if (clearCacheOption) { try { await clearCache() @@ -70,28 +78,19 @@ export default function ClearDocumentsDialog({ onDocumentsCleared }: ClearDocume } } - if (result.status === 'success') { - toast.success(t('documentPanel.clearDocuments.success')) - } else { - toast.error(t('documentPanel.clearDocuments.failed', { message: result.message })) + // Update health check status + await check() + + // Refresh document list if provided + if (onDocumentsCleared) { + await onDocumentsCleared() } + + // 所有操作成功后关闭对话框 + setOpen(false) } catch (err) { toast.error(t('documentPanel.clearDocuments.error', { error: errorMessage(err) })) - } finally { - // Execute these operations regardless of success or failure - try { - // Update backend state - await check() - - // Refresh document list - if (onDocumentsCleared) { - await onDocumentsCleared() - } - } catch (refreshErr) { - console.error('Error refreshing state:', refreshErr) - } - - setOpen(false) + setConfirmText('') } }, [isConfirmEnabled, clearCacheOption, setOpen, t, check, onDocumentsCleared])