From c1f97240230ada378d77eeb8db726e0d936169c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Oliva?= Date: Sat, 27 May 2023 15:48:23 -0600 Subject: Can now set a to do as done or undone. --- src/ToDo-UI/ListToDo.jsx | 17 ++++++++++++++--- src/api/axios_methods.js | 26 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ToDo-UI/ListToDo.jsx b/src/ToDo-UI/ListToDo.jsx index 74c36de..c777f8f 100644 --- a/src/ToDo-UI/ListToDo.jsx +++ b/src/ToDo-UI/ListToDo.jsx @@ -11,7 +11,12 @@ import { select_current_sorting, } from "../features/todo/reducer"; -import { edit_todo_function, remove_todo_function } from "../api/axios_methods"; +import { + edit_todo_function, + remove_todo_function, + set_done_function, + set_undone_function, +} from "../api/axios_methods"; function sort_table_header(prefix, current_sorting) { if (prefix.toLowerCase().startsWith(current_sorting.substr(0, 3))) { @@ -56,6 +61,9 @@ function list_of_todos(edit_button, delete_button) { dispatch(refresh_filtered_todos()); } + const set_done_api = set_done_function(); + const set_undone_api = set_undone_function(); + // Table contents var table_head = ( @@ -90,13 +98,16 @@ function list_of_todos(edit_button, delete_button) { checked={item.done} id={"list-todo-done-" + item.id} onChange={(e) => { + e.target.checked + ? set_done_api({ id: item.id }) + : set_undone_api({ id: item.id }); dispatch( change_done({ id: item.id, done: e.target.checked, }) - ), - dispatch(refresh_filtered_todos()); + ); + dispatch(refresh_filtered_todos()); }} > diff --git a/src/api/axios_methods.js b/src/api/axios_methods.js index 8748cb7..ffc0c28 100644 --- a/src/api/axios_methods.js +++ b/src/api/axios_methods.js @@ -60,3 +60,29 @@ export function remove_todo_function() { } }; } + +// setDone(). +export function set_done_function() { + // Set a to do as done. If already done, don't do anything. + // POST "/todos/{id}/done" + return async (data) => { + try { + await api.post(`/todos/${data.id}/done`); + } catch (err) { + console.log(err); + } + }; +} + +// setUndone(). +export function set_undone_function() { + // Set a to do as not done. If it's already not done, don't do anything. + // PUT "/todos/{id}/undone" + return async (data) => { + try { + await api.put(`/todos/${data.id}/undone`); + } catch (err) { + console.log(err); + } + }; +} -- cgit v1.2.3