"use client"; import { useState } from "react"; import { Plus } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { useBoard } from "@/components/board/board-context"; const TITLE_MAX = 20; export function TodoCreatePopover({ groupId, categoryId, }: { groupId: string; categoryId: string; }) { const { addTodo } = useBoard(); const [open, setOpen] = useState(false); const [title, setTitle] = useState(""); const [details, setDetails] = useState(""); const [pending, setPending] = useState(false); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); const trimmed = title.trim(); if (!trimmed) return; setPending(true); const ok = await addTodo(groupId, categoryId, trimmed, details.trim() || undefined); setPending(false); if (ok) { setTitle(""); setDetails(""); setOpen(false); } } return ( Add to-do } />
setTitle(e.target.value)} placeholder="e.g. Buy milk" />

{title.length}/{TITLE_MAX}