From 2082070fa9d79fe0702441f814f920095d1393c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Oliva?= Date: Sun, 28 May 2023 14:24:41 -0600 Subject: Little bug on last index. Because the Front End wasn't tracking the deleted items, the indexes between the database and the front end were not matching. --- src/App.jsx | 17 +++++++++++++++-- src/api/axios_methods.js | 14 ++++++++++++++ src/features/todo/reducer.js | 5 +++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 6f1b14f..b39d5d9 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -4,9 +4,13 @@ import { NewToDo } from "./ToDo-UI/NewToDo"; import { ListToDos } from "./ToDo-UI/ListToDo"; import { useDispatch } from "react-redux"; -import { set_todo, refresh_filtered_todos } from "./features/todo/reducer"; +import { + set_last_id, + set_todo, + refresh_filtered_todos, +} from "./features/todo/reducer"; -import { get_todos_function } from "./api/axios_methods"; +import { get_todos_function, get_last_id_function } from "./api/axios_methods"; function App() { const get_todos = get_todos_function(); @@ -37,6 +41,15 @@ function App() { } get_todos(handler); + const last_id_api = get_last_id_function(); + last_id_api((response) => { + dispatch( + set_last_id({ + id: response, + }) + ); + }); + return (
diff --git a/src/api/axios_methods.js b/src/api/axios_methods.js index ffc0c28..f983157 100644 --- a/src/api/axios_methods.js +++ b/src/api/axios_methods.js @@ -86,3 +86,17 @@ export function set_undone_function() { } }; } + +// giveMeLastID(). +export function get_last_id_function() { + // Retrieve last index used. + // GET "/todos/lastIndex" + return async (handler) => { + try { + const response = await api.get("/todos/lastIndex"); + handler(response.data); + } catch (err) { + console.log(err); + } + }; +} diff --git a/src/features/todo/reducer.js b/src/features/todo/reducer.js index 16fc427..118e482 100644 --- a/src/features/todo/reducer.js +++ b/src/features/todo/reducer.js @@ -17,6 +17,10 @@ export const todo_slice = createSlice({ }, reducers: { + set_last_id: (state, action) => { + state.last_id = action.payload.id; + }, + add_todo: (state, action) => { state.todos = [ ...state.todos, @@ -196,6 +200,7 @@ export const todo_slice = createSlice({ }); export const { + set_last_id, add_todo, set_todo, change_done, -- cgit v1.2.3