Improve toast notifications and document clearing flow

- Enhanced Toaster component with theme, close button and rich colors
    - Added immediate feedback for document clearing operation
This commit is contained in:
yangdx
2025-04-01 15:44:36 +08:00
parent d653711969
commit 4bb22046e0
2 changed files with 24 additions and 20 deletions

View File

@@ -80,7 +80,12 @@ const AppRouter = () => {
<ThemeProvider> <ThemeProvider>
<Router> <Router>
<AppContent /> <AppContent />
<Toaster position="bottom-center" /> <Toaster
position="bottom-center"
theme="system"
closeButton
richColors
/>
</Router> </Router>
</ThemeProvider> </ThemeProvider>
) )

View File

@@ -61,6 +61,14 @@ export default function ClearDocumentsDialog({ onDocumentsCleared }: ClearDocume
try { try {
const result = await clearDocuments() 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) { if (clearCacheOption) {
try { try {
await clearCache() await clearCache()
@@ -70,28 +78,19 @@ export default function ClearDocumentsDialog({ onDocumentsCleared }: ClearDocume
} }
} }
if (result.status === 'success') { // Update health check status
toast.success(t('documentPanel.clearDocuments.success')) await check()
} else {
toast.error(t('documentPanel.clearDocuments.failed', { message: result.message })) // Refresh document list if provided
if (onDocumentsCleared) {
await onDocumentsCleared()
} }
// 所有操作成功后关闭对话框
setOpen(false)
} catch (err) { } catch (err) {
toast.error(t('documentPanel.clearDocuments.error', { error: errorMessage(err) })) toast.error(t('documentPanel.clearDocuments.error', { error: errorMessage(err) }))
} finally { setConfirmText('')
// 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)
} }
}, [isConfirmEnabled, clearCacheOption, setOpen, t, check, onDocumentsCleared]) }, [isConfirmEnabled, clearCacheOption, setOpen, t, check, onDocumentsCleared])