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