From 0ed6d00cb2366af86e3b06fa74e4c33536027f07 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 16 Feb 2024 13:47:49 -0800 Subject: merge --- src/components/AppHeader.svelte | 4 +- src/components/Avatar.svelte | 4 +- src/components/ItemForm.svelte | 108 ++++++ src/lib/store.js | 1 - src/lib/utils.js | 1 + src/routes/(app)/[username]/(profile)/+page.svelte | 409 ++++++++++++--------- .../(app)/[username]/items/[id]/+page.server.js | 6 + .../(app)/[username]/items/[id]/+page.svelte | 7 + .../(app)/[username]/items/create/+page.svelte | 14 + .../[username]/settings/[...tab]/_account.svelte | 25 +- src/routes/(app)/payment/[id]/bump/+server.js | 12 + src/routes/(app)/register/+page.svelte | 2 + .../user/[username]/[...amount]/+page.server.js | 7 +- 13 files changed, 387 insertions(+), 213 deletions(-) create mode 100644 src/components/ItemForm.svelte create mode 100644 src/routes/(app)/[username]/items/[id]/+page.server.js create mode 100644 src/routes/(app)/[username]/items/[id]/+page.svelte create mode 100644 src/routes/(app)/[username]/items/create/+page.svelte create mode 100644 src/routes/(app)/payment/[id]/bump/+server.js (limited to 'src') diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index 147ba834..0f3d0366 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -1,6 +1,6 @@ + +
+
+ + +
+
+ +
+ {#if item.hash} + {item.name} + {:else if src} + {item.name} + {:else} +
+ {/if} + handleFile(e, "item")} + /> +
+
+ + + diff --git a/src/lib/store.js b/src/lib/store.js index ee60058c..c27e7f6c 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -40,7 +40,6 @@ const persistLocal = (key, defaultValue) => { export const avatar = writable(); export const banner = writable(); -export const colorTheme = writable("from-primary to-gradient"); export const event = writable(); export const events = writable({}); export const invoice = writable(); diff --git a/src/lib/utils.js b/src/lib/utils.js index 434ca268..8448e3c6 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -167,6 +167,7 @@ export let auth = (cookies) => ({ authorization: `Bearer ${cookies.get("token")}`, }); +export let btc = (fiat, rate) => Math.round((fiat * sats) / rate); export let fiat = (amount, rate) => (amount * rate) / sats; export let fd = async (req) => { let obj = Object.fromEntries(await req.formData()); diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index 6ca59e8a..670c2a2d 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -5,7 +5,7 @@ import Balance from "$comp/Balance.svelte"; import Feed from "$comp/Feed.svelte"; import { t } from "$lib/translations"; - import { ease, f, sat, sats } from "$lib/utils"; + import { btc, ease, f, sat, sats } from "$lib/utils"; import { sign, send, encrypt, decrypt } from "$lib/nostr"; import { event as e, password } from "$lib/store"; import { browser } from "$app/environment"; @@ -23,213 +23,260 @@ rates, } = data; $: refresh(data); - let refresh = (d) => - ({ messages, notes, invoices, sent, received, subject, user, rate, rates } = - d); + let refresh = (d) => ({ subject, user, rates } = d); - let keys = new Set(); - let latest = []; - let ready; + let items = [ + { + id: 1, + name: "Full Pour", + price: 9, + quantity: 0, + hash: "fa3a9d22eb24b33ae2dee8d7566c1ce25d1c76e18b46d54437621d3e34a3fbc9", + }, + { + id: 2, + name: "Half Pour", + price: 6, + quantity: 0, + hash: "a79c7b921a0dde39076201ae5f24505d5faa5f12f0cfd3b9d86cbc9c77ab0bd1", + }, + { + id: 3, + name: "Taster", + price: 3, + quantity: 0, + hash: "9d8fe68d068f7271cf08d4cb9b033966984549c1bcd827f7516e66e5b537f502", + }, + { + id: 4, + name: "4-packs", + price: 18, + quantity: 0, + hash: "13cf773ae51607e670c2a7c640aa5a1dc8b288554026de08370ed3da44e59493", + }, + ]; - e.subscribe(async (event) => { - if (!(event && ready)) return; - if ( - event.recipient?.id === user.id && - !~latest.findIndex((m) => m.id === event.id) - ) { - event.content = await decrypt({ event, user }); - - let i = latest.findIndex((m) => m.pubkey === event.pubkey); - let popped; - if (~i) popped = latest.splice(i, 1); - else popped = latest.pop(); - - latest.unshift(event); - latest = latest; - } - }); + $: total = items.reduce((a, b) => a + b.price * b.quantity, 0); + let del = () => {}; + - $: initialize($password); - let initialize = async (p) => { - let i = 0; - ready = false; - if (!p || !user) return; - while (i < messages.length) { - let event = messages[i]; - i++; +
+
+ +
+
+ {#if !user.balance} +

+ {$t("user.welcome")} +

+ {/if} - if (!(event.author && event.recipient)) continue; +
+ + + - let k = - event.author.id === user.id - ? event.recipient?.pubkey - : event.author.pubkey; - if (!keys.has(k)) { - keys.add(k); - event.content = await decrypt({ event, user }); - if (event.content) latest.push(event); - } - } + + + - latest = latest; - ready = true; - }; - + + + +
+ - - - - - - +
{i.quantity}
+ +
+
- + {/each} - {/if} - {#if invoices.length} -
-

Invoices

- {#each invoices as { amount, currency, rate, request: { requester, recipient }, hash }} - {@const requested = user.username === requester?.username} + {#if total > 0} +
-
- - {/if} - {#if received.length} -
-

Requests

+
+ {/if} - {#each received as { id, invoice, memo, requester: r }} - -
-
-
- + {/if} + {#if received.length} +
+

Requests

- {#if latest.length && user?.id === subject.id} -
- {#each latest as { content, pubkey, author, recipient }} - {@const user = author.id === user.id ? recipient : author} - - + {/if} +
diff --git a/src/routes/(app)/[username]/items/[id]/+page.server.js b/src/routes/(app)/[username]/items/[id]/+page.server.js new file mode 100644 index 00000000..e1fe2efd --- /dev/null +++ b/src/routes/(app)/[username]/items/[id]/+page.server.js @@ -0,0 +1,6 @@ +import { get } from "$lib/utils"; +export let load = async ({ cookies, params: { id } }) => { + let item = await get(`/item/${id}`); + console.log("item", item) + return { item }; +}; diff --git a/src/routes/(app)/[username]/items/[id]/+page.svelte b/src/routes/(app)/[username]/items/[id]/+page.svelte new file mode 100644 index 00000000..5a19e892 --- /dev/null +++ b/src/routes/(app)/[username]/items/[id]/+page.svelte @@ -0,0 +1,7 @@ + + + diff --git a/src/routes/(app)/[username]/items/create/+page.svelte b/src/routes/(app)/[username]/items/create/+page.svelte new file mode 100644 index 00000000..c9aeae1d --- /dev/null +++ b/src/routes/(app)/[username]/items/create/+page.svelte @@ -0,0 +1,14 @@ + + +
+

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

+ +
diff --git a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte index a4bb2b68..85892622 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte @@ -1,6 +1,6 @@