function AddTodo({user, setTodos, todos}) {
const [text, setText] = useState("");
const [errorMessage, setErrorMessage] = useState(null);
const addTodo = useCallback(async () => {
setErrorMessage(null)
try {
const todo = await aft.api.todo.create({
data: {
text: text,
user: {connect: {id: user.id}},
}
});
setText("");
setTodos((todos) => [...todos, todo]);
} catch (e) {
setErrorMessage(e.message);
}
}, [todos, user, text])
return html`
${errorMessage && html`<div class="row error">${errorMessage}</div>`}
<div class="row">
<input type=text
value=${text}
onInput=${e => setText(e.target.value)} />
<button onClick=${addTodo}>Add</button>
</div>`
}