import { Popover, PopoverButton, PopoverPanel } from "@headlessui/react"; import { More } from "iconsax-react"; import { type FC, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import TaskDetailLabelCheckbox from "../labels/TaskDetailLabelCheckbox"; type Props = { title: string; checked: boolean; onToggle: () => void; onSave: (title: string) => void; onDelete: () => void; isSaving?: boolean; }; const ChecklistItem: FC = ({ title, checked, onToggle, onSave, onDelete, isSaving = false }) => { const { t } = useTranslation("global"); const [isEditing, setIsEditing] = useState(false); const [editTitle, setEditTitle] = useState(title); useEffect(() => { if (!isEditing) { setEditTitle(title); } }, [title, isEditing]); const handleSave = () => { const trimmed = editTitle.trim(); if (!trimmed || trimmed === title) { setIsEditing(false); setEditTitle(title); return; } onSave(trimmed); setIsEditing(false); }; const handleCancel = () => { setIsEditing(false); setEditTitle(title); }; if (isEditing) { return (
setEditTitle(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") handleSave(); if (e.key === "Escape") handleCancel(); }} autoFocus disabled={isSaving} className="flex-1 h-[27px] px-2 text-xs bg-white/50 rounded outline-none" />
); } return (
{title}
{({ close }) => ( <> )}
); }; export default ChecklistItem;