///
import { type Cell, Default, handler, recipe, UI } from "commontools";
interface TodoListState {
items: Default;
}
const addItem = handler<
{ detail: { message: string } },
{ items: Cell }
>(
(event, { items }) => {
const value = event.detail.message?.trim();
if (value) {
const currentItems = items.get();
items.set([...currentItems, value]);
}
},
);
export default recipe("Todo List with Default", (state) => {
return {
[UI]: (
My Todos
{/* Note: key is not needed for Common Tools but linters require it */}
{state.items.map((item, index) => - {item}
)}
),
items: state.items,
};
});