diff options
Diffstat (limited to '')
-rw-r--r-- | src/ToDo-UI/ListToDo.jsx | 17 | ||||
-rw-r--r-- | src/api/axios_methods.js | 26 |
2 files changed, 40 insertions, 3 deletions
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 = ( <thead> @@ -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()); }} ></input> </div> 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); + } + }; +} |