import React, { useEffect, useState } from 'react' import { Plus, ChevronRight, Save } from 'lucide-react' import { KnowledgeGroup, UpdateGroupData } from '../types' import { useLanguage } from '../contexts/LanguageContext' import { useToast } from '../contexts/ToastContext' interface EditNotebookDrawerProps { isOpen: boolean onClose: () => void notebook: KnowledgeGroup onUpdate: (id: string, data: UpdateGroupData) => Promise } export const EditNotebookDrawer: React.FC = ({ isOpen, onClose, notebook, onUpdate, }) => { const { t } = useLanguage() const { showError } = useToast() const [name, setName] = useState(notebook.name) const [description, setDescription] = useState(notebook.description || '') const [isSubmitting, setIsSubmitting] = useState(false) // Reset form when notebook changes or drawer opens useEffect(() => { if (isOpen) { setName(notebook.name) setDescription(notebook.description || '') } }, [isOpen, notebook]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!name.trim()) return try { setIsSubmitting(true) await onUpdate(notebook.id, { name: name.trim(), description: description.trim(), }) onClose() } catch (error) { console.error('Failed to update notebook:', error) showError(t('updateFailedRetry')) } finally { setIsSubmitting(false) } } return ( <> {/* Backdrop */} {isOpen && (
)} {/* Drawer */}
{/* Header */}

{t('editNotebookTitle')}

{/* Content */}
setName(e.target.value)} className="w-full px-4 py-3 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 bg-slate-50" placeholder={t('namePlaceholder')} required autoFocus />
setDescription(e.target.value)} className="w-full px-4 py-3 border rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 bg-slate-50" placeholder={t('descPlaceholder')} />
{/* Footer */}
) }