From fbf3cef47c612b9c334917f10c810c797fc77da6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 20 Feb 2024 19:53:49 -0800 Subject: items --- src/components/DeleteItem.svelte | 47 +++++++ src/components/ItemForm.svelte | 86 ++++++++----- src/lib/upload.js | 3 +- src/locales/en.json | 2 + .../(app)/[username]/(profile)/+page.server.js | 11 ++ src/routes/(app)/[username]/(profile)/+page.svelte | 141 +++++++++++---------- .../(app)/[username]/items/[id]/+page.server.js | 24 +++- .../(app)/[username]/items/[id]/+page.svelte | 9 +- .../(app)/[username]/items/create/+page.server.js | 17 +++ .../(app)/[username]/items/create/+page.svelte | 4 +- 10 files changed, 234 insertions(+), 110 deletions(-) create mode 100644 src/components/DeleteItem.svelte create mode 100644 src/routes/(app)/[username]/(profile)/+page.server.js create mode 100644 src/routes/(app)/[username]/items/create/+page.server.js (limited to 'src') diff --git a/src/components/DeleteItem.svelte b/src/components/DeleteItem.svelte new file mode 100644 index 00000000..8f7f97ca --- /dev/null +++ b/src/components/DeleteItem.svelte @@ -0,0 +1,47 @@ + + +
+
+

Delete item

+
+
+ + +
+
+
+
diff --git a/src/components/ItemForm.svelte b/src/components/ItemForm.svelte index 044020b7..71114c29 100644 --- a/src/components/ItemForm.svelte +++ b/src/components/ItemForm.svelte @@ -1,9 +1,12 @@ +{#if deleting} + +{/if} +
{#if user?.id === subject.id}
@@ -86,6 +63,22 @@
{/if} + {#if user?.username === subject.username} +
+ + + +
+ {/if} +
{#each items as i}
i.quantity++} >
- {i.name} + {#if i.image} + {i.name} + {:else} +
+ {/if} {#if user?.username === subject.username}
i.quantity > 0 && i.quantity--} > -
-
{/if}
-
-
- {i.name} — {f(i.price, subject.currency)} -
-
-
i.quantity > 0 && i.quantity--} - > - +
+
+
{i.name}
+
+
+ {f(i.price, subject.currency)} +
+
+ {sat(btc(i.price, rates[subject.currency]))}
-
{i.quantity}
-
+
+
i.quantity > 0 && i.quantity--} + > + +
+
{i.quantity}
+ +
+
{/each}
@@ -151,19 +167,4 @@
{/if} - {#if user?.username === subject.username} - - {/if}
diff --git a/src/routes/(app)/[username]/items/[id]/+page.server.js b/src/routes/(app)/[username]/items/[id]/+page.server.js index e1fe2efd..960f9af4 100644 --- a/src/routes/(app)/[username]/items/[id]/+page.server.js +++ b/src/routes/(app)/[username]/items/[id]/+page.server.js @@ -1,6 +1,22 @@ -import { get } from "$lib/utils"; -export let load = async ({ cookies, params: { id } }) => { - let item = await get(`/item/${id}`); - console.log("item", item) +import { fd, auth, get, post } from "$lib/utils"; +import { fail, redirect } from "@sveltejs/kit"; + + export let load = async ({ cookies, params: { id } }) => { + let item = await get(`/items/${id}`); return { item }; }; + +export const actions = { + default: async ({ cookies, request, url }) => { + let form = await fd(request); + try { + await post(`/items`, form, auth(cookies)); + } catch (e) { + console.log(e); + return fail(400, { message: e.message }); + } + + let success = `/${url.pathname.split("/")[1]}`; + redirect(307, success); + }, +}; diff --git a/src/routes/(app)/[username]/items/[id]/+page.svelte b/src/routes/(app)/[username]/items/[id]/+page.svelte index 5a19e892..ddf4cf1d 100644 --- a/src/routes/(app)/[username]/items/[id]/+page.svelte +++ b/src/routes/(app)/[username]/items/[id]/+page.svelte @@ -1,7 +1,14 @@ - +
+

+ {$t("items.edit")} +

+ +
diff --git a/src/routes/(app)/[username]/items/create/+page.server.js b/src/routes/(app)/[username]/items/create/+page.server.js new file mode 100644 index 00000000..ea0571e7 --- /dev/null +++ b/src/routes/(app)/[username]/items/create/+page.server.js @@ -0,0 +1,17 @@ +import { fail, redirect } from "@sveltejs/kit"; +import { fd, auth, get, post } from "$lib/utils"; + +export const actions = { + default: async ({ cookies, request, url }) => { + let form = await fd(request); + try { + await post("/items", form, auth(cookies)); + } catch (e) { + console.log(e); + return fail(400, { message: e.message }); + } + + let success = `/${url.pathname.split('/')[1]}` + redirect(307, success); + }, +}; diff --git a/src/routes/(app)/[username]/items/create/+page.svelte b/src/routes/(app)/[username]/items/create/+page.svelte index c9aeae1d..46ee8e0c 100644 --- a/src/routes/(app)/[username]/items/create/+page.svelte +++ b/src/routes/(app)/[username]/items/create/+page.svelte @@ -1,8 +1,6 @@ @@ -10,5 +8,5 @@

{$t("items.add")}

- +
-- cgit v1.2.3