feat(dashboard): tableau de bord Second Brain configurable avec chargement progressif
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 7m3s
CI / Deploy production (on server) (push) Successful in 23s

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:
Antigravity
2026-07-14 16:50:53 +00:00
parent d38a99586b
commit 30da592ba2
62 changed files with 7741 additions and 335 deletions

View File

@@ -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 }))