From fbf3cef47c612b9c334917f10c810c797fc77da6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 20 Feb 2024 19:53:49 -0800 Subject: items --- .../(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 +- 6 files changed, 128 insertions(+), 78 deletions(-) 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/routes') diff --git a/src/routes/(app)/[username]/(profile)/+page.server.js b/src/routes/(app)/[username]/(profile)/+page.server.js new file mode 100644 index 00000000..59eb44d5 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/+page.server.js @@ -0,0 +1,11 @@ +import { auth, get } from "$lib/utils"; + +export async function load({ cookies, depends, parent }) { + depends("app:items"); + + let { subject } = await parent(); + let items = await get(`/${subject.id}/items`, auth(cookies)); + items.map((i) => (i.quantity = 0)); + + return { items }; +} diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index bb98ddfe..93b7355c 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -1,50 +1,27 @@ +{#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