import { useState } from 'react'; import { useTodos } from './hooks/useTodos'; import { TodoForm } from './components/TodoForm'; import { TodoList } from './components/TodoList'; import { EmptyState } from './components/EmptyState'; import { ConfirmDialog } from './components/ConfirmDialog'; import './App.css'; function App() { const { todos, loading, error, addTodo, toggleTodo, removeTodo } = useTodos(); const [confirmDialog, setConfirmDialog] = useState<{ isOpen: boolean; todoId: number | null; }>({ isOpen: false, todoId: null, }); const handleDeleteClick = (todoId: number) => { setConfirmDialog({ isOpen: true, todoId, }); }; const handleConfirmDelete = async () => { if (confirmDialog.todoId !== null) { await removeTodo(confirmDialog.todoId); setConfirmDialog({ isOpen: false, todoId: null, }); } }; const handleCancelDelete = () => { setConfirmDialog({ isOpen: false, todoId: null, }); }; return (

Todo App

{error && (
{error}
)} {loading ? (
Loading todos...
) : todos.length === 0 ? ( ) : ( )}
); } export default App;