commit 8e274132e60b21277506df3c7b47e5f75518fb32
parent 8cb67965e363a9ea602a51d6bdee1c4d1e067c54
Author: Adrián Oliva <[email protected]>
Date: Thu, 18 May 2023 13:59:48 -0600
Added remove action.
Diffstat:
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/ToDo.jsx b/src/ToDo.jsx
@@ -3,6 +3,7 @@ import { useSelector, useDispatch } from "react-redux";
import {
add_todo,
change_done,
+ remove_todo,
select_todos,
select_last_index,
} from "./features/todo/reducer";
@@ -241,7 +242,9 @@ export function ListToDos() {
<button
type="button"
className="btn btn-outline-dark"
- disabled
+ onClick={(e) =>
+ dispatch(remove_todo(item.id))
+ }
>
Delete
</button>
diff --git a/src/features/todo/reducer.js b/src/features/todo/reducer.js
@@ -30,10 +30,16 @@ export const todo_slice = createSlice({
state.todos[selected_todo].done = action.payload.done;
},
+
+ remove_todo: (state, action) => {
+ state.todos = state.todos.filter(
+ (todo) => todo.id != action.payload
+ );
+ },
},
});
-export const { add_todo, change_done } = todo_slice.actions;
+export const { add_todo, change_done, remove_todo } = todo_slice.actions;
export const select_todos = (state) => state.todo_list.todos;
export const select_last_index = (state) => state.todo_list.last_id;