From c7d71603908ee821f098424154880462d6ddab8d Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sun, 5 Feb 2023 23:23:51 +0800 Subject: [PATCH] move submit note to composable --- composables/note.ts | 22 ++++++++++++++++++++++ pages/notes/[id].vue | 16 ++-------------- types/global.d.ts | 4 ++++ 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 composables/note.ts diff --git a/composables/note.ts b/composables/note.ts new file mode 100644 index 0000000..c9ee26a --- /dev/null +++ b/composables/note.ts @@ -0,0 +1,22 @@ +export const submitNote = async ( + note: Note, + query: NoteQuery +): Promise => { + let response: ApiResponse = { + status: 200, + message: 'Update', + error: null, + }; + + await useFetch('/api/note', { + method: 'POST', + query, + body: note, + onResponse({ response }) { + console.log('POST:', response._data.message); + response = response._data; + }, + }); + + return response; +}; diff --git a/pages/notes/[id].vue b/pages/notes/[id].vue index f3ad8bb..ff0f9a3 100644 --- a/pages/notes/[id].vue +++ b/pages/notes/[id].vue @@ -67,20 +67,8 @@ const submit = async (note: Note) => { isSubmitting.value = true; - await useFetch('/api/note', { - method: 'POST', - query: { - id: route.params.id, - }, - body: { - title: note.title, - description: note.description, - }, - onResponse({ response }) { - isSubmitting.value = false; - console.log('POST:', response._data.message); - }, - }); + await submitNote(note, { id: route.params.id }); + isSubmitting.value = false; }; const deleteNote = async () => { diff --git a/types/global.d.ts b/types/global.d.ts index 3d75b17..4bf1d98 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -8,6 +8,10 @@ declare global { description: string; } + interface NoteQuery { + id: number | string | string[]; + } + interface ApiResponse { status: number; message: string;