feat(brainstorm): UX fixes — modal confirmation + destination carnet + race fix
UX Pro Max appliqué selon les best practices 2026 (Heptabase, Obsidian, Tana):
- confirmation-dialogs (HIGH): modal de confirmation avant brainstorm
- success-feedback (MEDIUM): toast avec destination du carnet
- nav-state-active (MEDIUM): indication claire de la session active
3 fixes:
1. Modal de confirmation (brainstorm-confirm-dialog.tsx, 181 lignes):
- Design system respecté: brand-accent, memento-paper, font-memento-serif
- Aperçu seed en card paper
- Sélecteur de carnet avec animation d'expansion
- Bouton 'Annuler' + 'Lancer le brainstorm' avec loader
- role=dialog, aria-modal, aria-label
- focus-visible, keyboard nav
- backdrop-blur-sm + click-to-close
- Lazy loaded via next/dynamic
2. Race condition fix (brainstorm-page.tsx L111):
- Auto-select session désactivé si urlSeed présent
- urlSeed + urlInviteToken court-circuitent le useEffect
3. Toast avec destination (handleConvert + noteCreatedIn key):
- message: 'Note créée dans [Nom du carnet]'
- useConvertIdea accepte notebookId optionnel
- API convert accepte notebookId via zod schema
- useConvertIdea(mutationFn) accepte string | {ideaId, notebookId}
i18n: 9 nouvelles clés brainstorm.* en EN/FR
This commit is contained in:
@@ -2925,7 +2925,7 @@
|
||||
"noSessions": "No brainstorms yet",
|
||||
"startOne": "Start one",
|
||||
"sessions": "Brainstorms",
|
||||
"seedLabel": "Seed Idea",
|
||||
"seedLabel": "Seed idea",
|
||||
"ideaPromptDetailed": "Enter your idea, question, or topic to brainstorm...",
|
||||
"brainstormThisIdea": "Brainstorm this idea",
|
||||
"startBrainstorm": "Start Brainstorm",
|
||||
@@ -3068,7 +3068,15 @@
|
||||
"legendWave1": "Variations",
|
||||
"legendWave2": "Analogies",
|
||||
"legendWave3": "Disruptions",
|
||||
"legendConverted": "Converted"
|
||||
"legendConverted": "Converted",
|
||||
"confirmTitle": "Brainstorm this idea",
|
||||
"confirmSubtitle": "AI will expand your idea",
|
||||
"destinationLabel": "Notes will be saved to",
|
||||
"defaultNotebook": "Brainstorm",
|
||||
"noNotebook": "No notebook",
|
||||
"launching": "Launching…",
|
||||
"launch": "Brainstorm",
|
||||
"noteCreatedIn": "Note created in"
|
||||
},
|
||||
"byokSettings": {
|
||||
"title": "Your API keys (BYOK)",
|
||||
|
||||
@@ -3072,7 +3072,15 @@
|
||||
"legendWave1": "Variations",
|
||||
"legendWave2": "Analogies",
|
||||
"legendWave3": "Disruptions",
|
||||
"legendConverted": "Convertie"
|
||||
"legendConverted": "Convertie",
|
||||
"confirmTitle": "Brainstormer cette idée",
|
||||
"confirmSubtitle": "L'IA va développer votre idée",
|
||||
"destinationLabel": "Les notes seront sauvegardées dans",
|
||||
"defaultNotebook": "Brainstorm",
|
||||
"noNotebook": "Aucun carnet",
|
||||
"launching": "Lancement…",
|
||||
"launch": "Brainstormer",
|
||||
"noteCreatedIn": "Note créée dans"
|
||||
},
|
||||
"byokSettings": {
|
||||
"title": "Vos clés API (BYOK)",
|
||||
|
||||
Reference in New Issue
Block a user