import { onNewTodo } from "./TodoList.telefunc"; import { createSignal, For, untrack } from "solid-js"; export function TodoList(props: { initialTodoItems: { text: string }[] }) { const [todoItems, setTodoItems] = createSignal(props.initialTodoItems); const [newTodo, setNewTodo] = createSignal(""); return ( <>
{ ev.preventDefault(); // Optimistic UI update setTodoItems((prev) => [...prev, { text: untrack(newTodo) }]); try { await onNewTodo({ text: untrack(newTodo) }); setNewTodo(""); } catch (e) { console.error(e); // rollback setTodoItems((prev) => prev.slice(0, -1)); } }} > setNewTodo(ev.target.value)} value={newTodo()} class={ "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 w-full sm:w-auto p-2 mr-1 mb-1" } />
); }