'use client' import { useState, useEffect } from 'react' import { motion, AnimatePresence } from 'motion/react' import { useLanguage } from '@/lib/i18n' import { useNotebooks } from '@/context/notebooks-context' interface CreateNotebookDialogProps { open?: boolean onOpenChange?: (open: boolean) => void parentNotebookId?: string | null } export function CreateNotebookDialog({ open, onOpenChange, parentNotebookId }: CreateNotebookDialogProps) { const { t } = useLanguage() const { createNotebookOptimistic, notebooks } = useNotebooks() const [name, setName] = useState('') const [selectedParentId, setSelectedParentId] = useState(null) const [isSubmitting, setIsSubmitting] = useState(false) const rootNotebooks = notebooks.filter(nb => !nb.parentId && !nb.trashedAt) useEffect(() => { if (open) { setSelectedParentId(parentNotebookId ?? null) setName('') } }, [open, parentNotebookId]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!name.trim()) return setIsSubmitting(true) try { await createNotebookOptimistic({ name: name.trim(), icon: 'folder', color: '#64748B', parentId: selectedParentId, }) setName('') onOpenChange?.(false) } catch (err) { console.error('Failed to create notebook:', err) } finally { setIsSubmitting(false) } } const handleClose = () => { setName('') setSelectedParentId(null) onOpenChange?.(false) } const isSubNotebook = !!parentNotebookId return ( {open && (

{isSubNotebook ? (t('notebook.createSubNotebook') || 'Nouveau sous-carnet') : (t('notebook.createNew') || 'Nouveau carnet') }

{isSubNotebook && parentNotebookId ? `${t('notebook.under') || 'Sous'} ${notebooks.find(nb => nb.id === parentNotebookId)?.name || ''}` : (t('notebook.createDescription') || 'Donnez un nom à votre nouveau carnet.') }

setName(e.target.value)} placeholder={t('notebook.namePlaceholder') || 'Ex. : Projets, Recherche…'} className="w-full bg-white dark:bg-zinc-800 border border-black/12 dark:border-white/15 rounded-lg px-4 py-3 outline-none focus:border-foreground/40 dark:focus:border-white/40 transition-colors font-memento-serif italic text-lg text-foreground placeholder:text-muted-foreground/40" />
{!isSubNotebook && rootNotebooks.length > 0 && (
)}
)}
) }