diff --git a/src/App.tsx b/src/App.tsx index 4e1f04b..cce0cd3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,25 +1,17 @@ import React from "react"; +import { Provider } from "react-redux"; import { Layout } from "./components/Layout"; import { TodoList } from "./components/TodoList"; import { AppBar } from "./components/AppBar"; -import { TaskItemT } from "./types"; import { AddTask } from "./components/AddTask"; - -const tasks: TaskItemT[] = [ - { text: "test", done: false, id: 0 }, - { text: "Long, a bit tooooooo0000000000oooooo long test", done: true, id: 1 }, -]; +import store from "./store"; export const App = () => { return ( - <> - } - title="My tasks" - content={} - /> + + } title="My tasks" content={} /> - + ); }; diff --git a/src/components/TodoItem.tsx b/src/components/TodoItem.tsx index e2f9704..19eda7b 100644 --- a/src/components/TodoItem.tsx +++ b/src/components/TodoItem.tsx @@ -9,17 +9,24 @@ import TextField from "@mui/material/TextField"; import DeleteOutlined from "@mui/icons-material/DeleteOutlined"; import { TaskItemT } from "../types"; +import { useAppDispatch } from "../hooks"; +import { markDone, remove } from "../store/slices/todo"; -export type TodoItemProps = { task: TaskItemT }; +export type TodoItemProps = { task: TaskItemT; index: number }; -export const TodoItem: React.FC = ({ task }) => { +export const TodoItem: React.FC = ({ task, index }) => { const { done, text } = task; + const dispatch = useAppDispatch(); + const [editing, setEditing] = useState(false); return ( - + dispatch(markDone({ index, value: !done }))} + /> {editing ? ( = ({ task }) => { multiline /> ) : ( - setEditing(true)} primary={text} /> + setEditing(true)} + primary={text} + /> )} - + dispatch(remove(index))} + > diff --git a/src/components/TodoList.tsx b/src/components/TodoList.tsx index f2eea3e..a04b964 100644 --- a/src/components/TodoList.tsx +++ b/src/components/TodoList.tsx @@ -4,18 +4,16 @@ import List from "@mui/material/List"; import Paper from "@mui/material/Paper"; import { TodoItem } from "./TodoItem"; -import { TaskItemT } from "../types"; +import { useAppSelector } from "../hooks"; -export type TodoListProps = { - tasks: TaskItemT[]; -}; +export const TodoList: React.FC = () => { + const tasks = useAppSelector((state) => state.todo.tasks); -export const TodoList: React.FC = ({ tasks }) => { return ( - {tasks.map((task) => ( - + {tasks.map((task, index) => ( + ))}