diff --git a/keep-notes/components/create-notebook-dialog.tsx b/keep-notes/components/create-notebook-dialog.tsx index b1e8e5b..003b9c6 100644 --- a/keep-notes/components/create-notebook-dialog.tsx +++ b/keep-notes/components/create-notebook-dialog.tsx @@ -1,7 +1,6 @@ 'use client' import { useState } from 'react' -import { useRouter } from 'next/navigation' import { Plus, X, Folder, Briefcase, FileText, Zap, BarChart3, Globe, Sparkles, Book, Heart, Crown, Music, Building2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { @@ -47,7 +46,6 @@ interface CreateNotebookDialogProps { } export function CreateNotebookDialog({ open, onOpenChange }: CreateNotebookDialogProps) { - const router = useRouter() const { t } = useLanguage() const { createNotebookOptimistic } = useNotebooks() const [name, setName] = useState('') @@ -68,9 +66,8 @@ export function CreateNotebookDialog({ open, onOpenChange }: CreateNotebookDialo icon: selectedIcon, color: selectedColor, }) - // Close dialog — no full page reload needed + // Close dialog — context already updated sidebar state onOpenChange?.(false) - router.refresh() } catch (error) { console.error('Failed to create notebook:', error) } finally { diff --git a/keep-notes/components/delete-notebook-dialog.tsx b/keep-notes/components/delete-notebook-dialog.tsx index da3a4bb..773f187 100644 --- a/keep-notes/components/delete-notebook-dialog.tsx +++ b/keep-notes/components/delete-notebook-dialog.tsx @@ -26,7 +26,6 @@ export function DeleteNotebookDialog({ notebook, open, onOpenChange }: DeleteNot try { await deleteNotebook(notebook.id) onOpenChange(false) - window.location.reload() } catch (error) { // Error already handled in UI } diff --git a/keep-notes/components/edit-notebook-dialog.tsx b/keep-notes/components/edit-notebook-dialog.tsx index 23671cd..e5fcb3c 100644 --- a/keep-notes/components/edit-notebook-dialog.tsx +++ b/keep-notes/components/edit-notebook-dialog.tsx @@ -1,7 +1,6 @@ 'use client' -import { useState } from 'react' -import { useRouter } from 'next/navigation' +import { useState, useEffect } from 'react' import { useLanguage } from '@/lib/i18n' import { Button } from '@/components/ui/button' import { @@ -14,41 +13,36 @@ import { } from '@/components/ui/dialog' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' +import { useNotebooks } from '@/context/notebooks-context' +import { Notebook } from '@/lib/types' interface EditNotebookDialogProps { - notebook: any + notebook: Notebook open: boolean onOpenChange: (open: boolean) => void } export function EditNotebookDialog({ notebook, open, onOpenChange }: EditNotebookDialogProps) { - const router = useRouter() + const { updateNotebook } = useNotebooks() const { t } = useLanguage() const [name, setName] = useState(notebook?.name || '') const [isSubmitting, setIsSubmitting] = useState(false) + useEffect(() => { + if (open) { + setName(notebook?.name || '') + } + }, [open, notebook?.name]) + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() - if (!name.trim()) return - setIsSubmitting(true) - try { - const response = await fetch(`/api/notebooks/${notebook.id}`, { - method: 'PATCH', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ name: name.trim() }), - }) - - if (response.ok) { - onOpenChange(false) - window.location.reload() - } else { - const error = await response.json() - } - } catch (error) { - // Error already handled in UI + await updateNotebook(notebook.id, { name: name.trim() }) + onOpenChange(false) + } catch { + // Error handled in UI } finally { setIsSubmitting(false) } @@ -63,7 +57,6 @@ export function EditNotebookDialog({ notebook, open, onOpenChange }: EditNoteboo {t('notebook.editDescription')} -