feat(dashboard): tableau de bord Second Brain configurable avec chargement progressif
Briefing granulaire, pistes rapides puis enrichissement async, layout persisté v5, suggestions agents, intégration Gmail et navigation sidebar alignée sur /home. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -42,7 +42,7 @@ export function OrganizeNotebookDialog({
|
||||
const handleAnalyze = useCallback(async () => {
|
||||
setStep('analyzing'); setError(null); setPlan(null)
|
||||
const res = await analyzeNotebookForOrganization(notebookId, language)
|
||||
if (!res.success || !res.plan) { setError(res.error ?? 'Erreur'); setStep('idle'); return }
|
||||
if (!res.success || !res.plan) { setError(res.error ?? t('common.error')); setStep('idle'); return }
|
||||
setPlan(res.plan)
|
||||
setEditableGroups(res.plan.groups.map(g => ({ ...g, notes: [...g.notes] })))
|
||||
setExpandedGroups(new Set(res.plan.groups.map((_, i) => i)))
|
||||
@@ -74,7 +74,7 @@ export function OrganizeNotebookDialog({
|
||||
groups: editableGroups.filter(g => g.notes.length > 0 && g.name.trim()),
|
||||
}
|
||||
const res = await executeNotebookOrganization(finalPlan)
|
||||
if (!res.success) { setError(res.error ?? 'Erreur'); setStep('preview'); return }
|
||||
if (!res.success) { setError(res.error ?? t('common.error')); setStep('preview'); return }
|
||||
setResult({ created: res.created, moved: res.moved })
|
||||
setStep('done')
|
||||
toast.success(t('organizeNotebook.toastSuccess', { created: res.created, moved: res.moved }))
|
||||
|
||||
Reference in New Issue
Block a user