import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { ToDo } from "../models/ToDo"; const initialState = [] as ToDo[]; const todoSlice = createSlice({ name: "todos", initialState, reducers: { addTodo: { reducer: (state, action: PayloadAction<ToDo>) => { state.push(action.payload); }, prepare: (description: string) => ({ payload: { id: Date.now(), description, completed: false, } as ToDo, }), }, removeTodo(state, action: PayloadAction<number>) { const index = state.findIndex((todo) => todo.id === action.payload); state.splice(index, 1); }, setTodoStatus( state, action: PayloadAction<{ completed: boolean; id: number }> ) { const index = state.findIndex((todo) => todo.id === action.payload.id); state[index].completed = action.payload.completed; }, }, }); export const { addTodo, removeTodo, setTodoStatus } = todoSlice.actions; export default todoSlice.reducer;