diff --git a/App.js b/App.js
new file mode 100644
index 0000000..f927186
--- /dev/null
+++ b/App.js
@@ -0,0 +1,116 @@
+import React, { useEffect, useState } from 'react';
+import TaskForm from './TaskForm';
+import TaskList from './TaskList';
+import { fetchTasks } from './api';
+
+const App = () => {
+ const [tasks, setTasks] = useState([]);
+
+ const loadTasks = async () => {
+ const tasks = await fetchTasks();
+ setTasks(tasks);
+ };
+
+ useEffect(() => {
+ loadTasks();
+ }, []);
+
+ return (
+
+
Todo List
+
+
+
+ );
+};
+
+export default App;
+
+import React, { useState } from 'react';
+import { createTask } from './api';
+
+const TaskForm = ({ onTaskAdded }) => {
+ const [task, setTask] = useState('');
+
+ const handleSubmit = async (e) => {
+ e.preventDefault();
+ if (!task) return;
+ await createTask({ name: task });
+ setTask('');
+ onTaskAdded();
+ };
+
+ return (
+
+
Todo List
+
+
+ );
+};
+
+export default TaskForm;
+
+const TaskList = ({ tasks, onEdit, onDelete, onToggleComplete }) => {
+ return (
+
+
+
TODO
+
+ {tasks.filter(task => !task.completed).map((task) => (
+
+
+ onToggleComplete(task.id)}
+ className="mr-2"
+ />
+ {task.name}
+
+
+
+
+
+
+ ))}
+
+
+
+
COMPLETED
+
+ {tasks.filter(task => task.completed).map((task) => (
+
+
+ onToggleComplete(task.id)}
+ className="mr-2"
+ />
+ {task.name}
+
+
+
+
+
+
+ ))}
+
+
+
+ );
+};
+
+export default TaskList;
+