"use client"; import { useState } from "react"; interface InteractiveChecklistProps { checklist: string; } function parseItems(raw: string): string[] { return raw .split(/,\s*(?=☐)/) .map((s) => s.replace(/^☐\s*/, "").trim()) .filter(Boolean); } export function InteractiveChecklist({ checklist }: InteractiveChecklistProps) { const items = parseItems(checklist); const [checked, setChecked] = useState>(new Set()); if (items.length === 0) return null; function toggle(idx: number) { setChecked((prev) => { const next = new Set(prev); if (next.has(idx)) next.delete(idx); else next.add(idx); return next; }); } return (
{checked.size} of {items.length} completed
{items.map((item, i) => ( ))}
); }