From 1140adfef43030e20fd63730ea8bde3f26d7b358 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 21 Feb 2024 21:37:55 -0800 Subject: invoice styles --- src/lib/store.js | 41 +++---- src/lib/utils.js | 1 - src/locales/en.json | 1 + src/routes/(app)/[username]/(profile)/+page.svelte | 96 +++++++++------- .../(app)/[username]/invoice/[id]/+page.svelte | 126 ++++++++++++++------- .../(app)/[username]/items/create/+page.server.js | 3 - static/icons/copy.svg | 4 +- static/icons/mobile.svg | 8 +- 8 files changed, 173 insertions(+), 107 deletions(-) diff --git a/src/lib/store.js b/src/lib/store.js index c27e7f6c..3bec45b9 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -1,7 +1,7 @@ import { get, writable } from "svelte/store"; import { browser } from "$app/environment"; -const persistSession = (key, defaultValue) => { +let persistSession = (key, defaultValue) => { let s = writable( browser && sessionStorage.getItem(key) && @@ -17,7 +17,7 @@ const persistSession = (key, defaultValue) => { return s; }; -const persistLocal = (key, defaultValue) => { +let persistLocal = (key, defaultValue) => { let s = writable( browser && localStorage.getItem(key) && @@ -38,21 +38,22 @@ const persistLocal = (key, defaultValue) => { return s; }; -export const avatar = writable(); -export const banner = writable(); -export const event = writable(); -export const events = writable({}); -export const invoice = writable(); -export const last = writable(); -export const loginRedirect = writable(); -export const decrypted = persistLocal("decrypted", {}); -export const newPayment = persistLocal("newPayment"); -export const password = writable(); -export const passwordPrompt = writable(); -export const pin = persistSession("pin"); -export const rate = writable(); -export const request = writable(); -export const requestRedirect = writable(); -export const token = persistSession("token"); -export const user = writable(); -export const ndef = writable(); +export let avatar = writable(); +export let banner = writable(); +export let event = writable(); +export let events = writable({}); +export let invoice = writable(); +export let last = writable(); +export let loginRedirect = writable(); +export let decrypted = persistLocal("decrypted", {}); +export let newPayment = persistLocal("newPayment"); +export let password = writable(); +export let passwordPrompt = writable(); +export let pin = persistSession("pin"); +export let rate = writable(); +export let request = writable(); +export let requestRedirect = writable(); +export let token = persistSession("token"); +export let user = writable(); +export let ndef = writable(); + export let showQr = persistLocal("showQr"); diff --git a/src/lib/utils.js b/src/lib/utils.js index d3ad0da3..9f9fc042 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -49,7 +49,6 @@ export let post = async (url, body, headers, timeout = 8000) => { }; let controller = new AbortController(); - console.log(controller, timeout); let id = setTimeout(() => { controller.abort(new Error("Operation timed out")); }, timeout); diff --git a/src/locales/en.json b/src/locales/en.json index 1ad0c931..0915d98c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -285,6 +285,7 @@ } }, "payments": { + "options": "options", "bump": "Bump fee", "networkFee": "Network fee", "platformFee": "Platform fee", diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index 95dd41a4..2a0f94bb 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -1,5 +1,5 @@ {#if deleting} @@ -46,7 +67,7 @@
{#if user?.id === subject.id}
- +
{#if !user.balance} @@ -62,6 +83,7 @@ > -
+ {/if}
{#if i.quantity}{i.quantity}{:else}—{/if} @@ -177,30 +203,24 @@
- + {/each} {#if total > 0} -
- - - -
+
+
+ {$t("user.dashboard.checkout")} + {f(total, currency)} + + {sat(btc(total, rate), currency)} + +
+
+ {/if} diff --git a/src/routes/(app)/[username]/invoice/[id]/+page.svelte b/src/routes/(app)/[username]/invoice/[id]/+page.svelte index cd67744f..3451cf58 100644 --- a/src/routes/(app)/[username]/invoice/[id]/+page.svelte +++ b/src/routes/(app)/[username]/invoice/[id]/+page.svelte @@ -2,6 +2,7 @@ import { enhance } from "$app/forms"; import { send } from "$lib/socket"; import { + btc, post, back, copy, @@ -15,7 +16,7 @@ } from "$lib/utils"; import { tick, onMount, onDestroy } from "svelte"; import { browser } from "$app/environment"; - import { last } from "$lib/store"; + import { last, showQr } from "$lib/store"; import Avatar from "$comp/Avatar.svelte"; import Icon from "$comp/Icon.svelte"; import Heart from "$comp/Heart.svelte"; @@ -26,6 +27,7 @@ export let data; let ndef; + let showOptions; let reading = async ({ message, serialNumber }) => { let name = serialNumber.replace(/:/g, "-"); @@ -49,7 +51,6 @@ user: { username, currency }, } = invoice; - let showQr = true; let qr; let tipPercent = 0; @@ -92,6 +93,7 @@ let subbed; onMount(async () => { + $showQr = $showQr && 1 if (browser) { last.subscribe((v) => { if (!v || subbed) return; @@ -125,7 +127,7 @@
- {#if showQr} + {#if $showQr === 1}
{/if} + {#each invoice.items as i} +
+
{i.quantity} {i.name}
+
+
+ {f(i.price * i.quantity, currency)} +
+
+ {sat(btc(i.price * i.quantity, rate))} +
+
+
+ {/each} + {#if amount > 0}
@@ -167,9 +183,55 @@
{/if} -
+ + + +
+ + + + + + + + + + + + + + + + +
+ + +
- - -
- - - - - -
+ {txt} + +
+ {/if}