"use client"; import { useState } from "react"; import { useTheme } from "next-themes"; import { NotebookPen, Pencil } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { MDEditor, MarkdownPreview } from "@/components/markdown/markdown-widgets"; import { useBoard } from "@/components/board/board-context"; import type { GroupDTO } from "@/types/board"; export function NotesDialog({ group }: { group: GroupDTO }) { const { saveNote } = useBoard(); const { resolvedTheme } = useTheme(); const colorMode = resolvedTheme === "dark" ? "dark" : "light"; const [open, setOpen] = useState(false); const [editing, setEditing] = useState(false); const [draft, setDraft] = useState(group.noteContent); const [pending, setPending] = useState(false); function handleOpenChange(next: boolean) { setOpen(next); if (next) { setDraft(group.noteContent); setEditing(false); } } async function handleSave() { setPending(true); const ok = await saveNote(group.id, group.categoryId, draft); setPending(false); if (ok) setEditing(false); } return ( {group.title} — Notes {editing ? ( setDraft(v ?? "")} height={360} /> ) : draft ? (
) : (

No notes yet. Click Edit to add some.

)} {editing ? ( <> ) : ( )}
); }