fix(brainstorm): dialog sélection carnet sur Create Note depuis canvas
Vrai fix UX: quand l'utilisateur clique 'Create Note' dans le canvas brainstorm, il voit maintenant un dialog (ConvertNotebookDialog) qui demande dans quel carnet sauvegarder la note — au lieu d'aller silencieusement dans le carnet source ou un carnet auto-créé. - convert-notebook-dialog.tsx (162 lignes): dialog de sélection carnet - design system respecté: emerald, memento-paper, font-memento-serif - preview de l'idée en card - dropdown carnet avec animation d'expansion - bouton 'Create note' avec loader - role=dialog, aria-modal, aria-label - brainstorm-page.tsx: convertConfirm state + bouton 'Create Note' ouvre le dialog - 3 nouvelles clés i18n (EN/FR): convertTitle, convertSubtitle, ideaLabel
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"version": 1,
|
||||
"lastRunAtMs": 1783196565768,
|
||||
"turnsSinceLastRun": 5,
|
||||
"turnsSinceLastRun": 6,
|
||||
"lastTranscriptMtimeMs": 1783196565691.0437,
|
||||
"lastProcessedGenerationId": "7ac52bd5-5714-460a-9c3b-e4b21907d6d7",
|
||||
"lastProcessedGenerationId": "6ccc52d1-8073-4386-b4d0-84c60a305da2",
|
||||
"trialStartedAtMs": null
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ import {
|
||||
import { useBrainstormSocket } from '@/hooks/use-brainstorm-socket'
|
||||
import { LiveCursors, PresenceAvatars, useCursorTracking } from '@/components/brainstorm/live-cursors'
|
||||
import { ActivityFeed } from '@/components/brainstorm/activity-feed'
|
||||
import { ConvertNotebookDialog } from './convert-notebook-dialog'
|
||||
import { BrainstormShareDialog } from '@/components/brainstorm/brainstorm-share-dialog'
|
||||
import { GhostCursor } from '@/components/brainstorm/ghost-cursor'
|
||||
import { PlaybackBar } from '@/components/brainstorm/playback-bar'
|
||||
@@ -129,6 +130,7 @@ export function BrainstormPage() {
|
||||
const expandIdea = useExpandIdea(activeSessionId || '')
|
||||
const dismissIdea = useDismissIdea(activeSessionId || '')
|
||||
const convertIdea = useConvertIdea(activeSessionId || '')
|
||||
const [convertConfirm, setConvertConfirm] = useState<BrainstormIdea | null>(null)
|
||||
const exportBrainstorm = useExportBrainstorm(activeSessionId || '')
|
||||
const finalizeBrainstorm = useFinalizeBrainstorm(activeSessionId || '')
|
||||
const deleteBrainstorm = useDeleteBrainstorm()
|
||||
@@ -896,7 +898,7 @@ export function BrainstormPage() {
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
onClick={() => handleConvert(selectedIdea)}
|
||||
onClick={() => setConvertConfirm(selectedIdea)}
|
||||
disabled={selectedIdea.status === 'converted' || convertIdea.isPending}
|
||||
className="flex flex-col items-center justify-center p-6 border-2 border-dashed border-border rounded-2xl hover:border-emerald-400/40 hover:bg-emerald-500/5 transition-all group disabled:opacity-50"
|
||||
>
|
||||
@@ -1156,6 +1158,20 @@ export function BrainstormPage() {
|
||||
onClose={peek.close}
|
||||
onOpenFully={(n) => { router.push(`/home?openNote=${n.id}`); peek.close() }}
|
||||
/>
|
||||
|
||||
{/* Dialog de sélection de carnet pour la conversion */}
|
||||
<ConvertNotebookDialog
|
||||
open={convertConfirm !== null}
|
||||
idea={convertConfirm}
|
||||
notebooks={notebooks}
|
||||
defaultNotebookId={urlNotebookId}
|
||||
onClose={() => setConvertConfirm(null)}
|
||||
onConfirm={(notebookId) => {
|
||||
if (!convertConfirm) return
|
||||
handleConvert(convertConfirm, notebookId)
|
||||
setConvertConfirm(null)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3077,7 +3077,10 @@
|
||||
"launching": "Launching…",
|
||||
"launch": "Brainstorm",
|
||||
"noteCreatedIn": "Note created in",
|
||||
"openNotebook": "Open notebook"
|
||||
"openNotebook": "Open notebook",
|
||||
"convertTitle": "Create note from idea",
|
||||
"convertSubtitle": "Choose where to save this note",
|
||||
"ideaLabel": "Idea"
|
||||
},
|
||||
"byokSettings": {
|
||||
"title": "Your API keys (BYOK)",
|
||||
|
||||
@@ -3081,7 +3081,10 @@
|
||||
"launching": "Lancement…",
|
||||
"launch": "Brainstormer",
|
||||
"noteCreatedIn": "Note créée dans",
|
||||
"openNotebook": "Ouvrir le carnet"
|
||||
"openNotebook": "Ouvrir le carnet",
|
||||
"convertTitle": "Créer une note depuis cette idée",
|
||||
"convertSubtitle": "Choisir où sauvegarder cette note",
|
||||
"ideaLabel": "Idée"
|
||||
},
|
||||
"byokSettings": {
|
||||
"title": "Vos clés API (BYOK)",
|
||||
|
||||
Reference in New Issue
Block a user