From 2e2932a0304bbcddf56fd273fa440309dbdc9acc Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Sat, 27 Jul 2024 22:18:52 -0400 Subject: [PATCH] edit transportation --- .../lib/components/EditTransportation.svelte | 159 +++++++++++------- frontend/src/routes/api/[...path]/+server.ts | 4 +- .../src/routes/collections/[id]/+page.svelte | 11 ++ 3 files changed, 112 insertions(+), 62 deletions(-) diff --git a/frontend/src/lib/components/EditTransportation.svelte b/frontend/src/lib/components/EditTransportation.svelte index 8dd892c..02208b6 100644 --- a/frontend/src/lib/components/EditTransportation.svelte +++ b/frontend/src/lib/components/EditTransportation.svelte @@ -35,8 +35,6 @@ transportationToEdit.date = transportationToEdit.date.slice(0, 19); } - function submit() {} - function close() { dispatch('close'); } @@ -52,24 +50,21 @@ const form = event.target as HTMLFormElement; const formData = new FormData(form); - const response = await fetch(form.action, { - method: form.method, + const response = await fetch(`/api/transportations/${transportationToEdit.id}/`, { + method: 'PUT', body: formData }); if (response.ok) { const result = await response.json(); - const data = JSON.parse(result.data); - console.log(data); - if (data) { - addToast('success', 'Adventure edited successfully!'); - dispatch('saveEdit', transportationToEdit); - close(); - } else { - addToast('warning', 'Error editing adventure'); - console.log('Error editing adventure'); - } + transportationToEdit = result; + + addToast('success', 'Adventure edited successfully!'); + dispatch('saveEdit', transportationToEdit); + close(); + } else { + addToast('error', 'Error editing adventure'); } } @@ -83,17 +78,37 @@ class="modal-action items-center" style="display: flex; flex-direction: column; align-items: center; width: 100%;" > -
+
+
+
+ +
+
- -
-
Rating
+ +
+
+
+ +
+
+
+ +
+ {#if transportationToEdit.type == 'plane'} +
+
+ +
+ {/if} +
+
+ +
+
+
+
-
-
- -
- {#if transportationToEdit.is_public} -
-

Share this Adventure!

-
-

- {window.location.origin}/collections/{transportationToEdit.id} -

- -
-
- {/if} - - +
diff --git a/frontend/src/routes/api/[...path]/+server.ts b/frontend/src/routes/api/[...path]/+server.ts index 0d237c2..981debb 100644 --- a/frontend/src/routes/api/[...path]/+server.ts +++ b/frontend/src/routes/api/[...path]/+server.ts @@ -15,7 +15,7 @@ export async function GET({ url, params, request, fetch, cookies }) { /** @type {import('./$types').RequestHandler} */ export async function POST({ url, params, request, fetch, cookies }) { - return handleRequest(url, params, request, fetch, cookies); + return handleRequest(url, params, request, fetch, cookies, true); } export async function PATCH({ url, params, request, fetch, cookies }) { @@ -23,7 +23,7 @@ export async function PATCH({ url, params, request, fetch, cookies }) { } export async function PUT({ url, params, request, fetch, cookies }) { - return handleRequest(url, params, request, fetch, cookies); + return handleRequest(url, params, request, fetch, cookies, true); } export async function DELETE({ url, params, request, fetch, cookies }) { diff --git a/frontend/src/routes/collections/[id]/+page.svelte b/frontend/src/routes/collections/[id]/+page.svelte index a005b33..eeaa9ac 100644 --- a/frontend/src/routes/collections/[id]/+page.svelte +++ b/frontend/src/routes/collections/[id]/+page.svelte @@ -134,6 +134,16 @@ isEditModalOpen = true; } + function saveNewTransportation(event: CustomEvent) { + transportations = transportations.map((transportation) => { + if (transportation.id === event.detail.id) { + return event.detail; + } + return transportation; + }); + isTransportationEditModalOpen = false; + } + function saveEdit(event: CustomEvent) { adventures = adventures.map((adventure) => { if (adventure.id === event.detail.id) { @@ -159,6 +169,7 @@ (isTransportationEditModalOpen = false)} + on:saveEdit={saveNewTransportation} /> {/if}