diff options
| author | Adam Soltys <[email protected]> | 2024-12-05 19:20:36 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-12-05 19:20:36 -0800 |
| commit | a9b44cbae79e9c01cff07964a45e1c7efa7fb241 (patch) | |
| tree | 5caa996fc2eca705fb793e79d63bfbf5f9f93e48 /src/routes/(app)/invoice | |
| parent | 6422ef30f14e1baf5d1995de69c777efcad77e32 (diff) | |
| download | coinos-ui-a9b44cbae79e9c01cff07964a45e1c7efa7fb241.tar.gz coinos-ui-a9b44cbae79e9c01cff07964a45e1c7efa7fb241.zip | |
cached rates
Diffstat (limited to 'src/routes/(app)/invoice')
| -rw-r--r-- | src/routes/(app)/invoice/+page.server.ts | 4 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/memo/+page.svelte | 38 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/tip/+page.server.ts | 10 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/tip/+page.svelte | 10 |
4 files changed, 16 insertions, 46 deletions
diff --git a/src/routes/(app)/invoice/+page.server.ts b/src/routes/(app)/invoice/+page.server.ts index 8d2f3b7f..db68740d 100644 --- a/src/routes/(app)/invoice/+page.server.ts +++ b/src/routes/(app)/invoice/+page.server.ts @@ -1,10 +1,12 @@ +import getRates from "$lib/rates"; import type { Invoice } from "$lib/types"; import { auth, post } from "$lib/utils"; import { error, redirect } from "@sveltejs/kit"; export const load = async ({ cookies, parent }) => { const aid = cookies.get("aid"); - let { subject, user, rates } = await parent(); + let { subject, user } = await parent(); + const rates = await getRates(); if (aid === user.id) redirect(307, `/${user.username}/receive`); let invoice: Invoice = { diff --git a/src/routes/(app)/invoice/[id]/memo/+page.svelte b/src/routes/(app)/invoice/[id]/memo/+page.svelte index e5bc8a18..67283148 100644 --- a/src/routes/(app)/invoice/[id]/memo/+page.svelte +++ b/src/routes/(app)/invoice/[id]/memo/+page.svelte @@ -1,19 +1,10 @@ <script> - import { run } from 'svelte/legacy'; + import { run } from "svelte/legacy"; import { onMount } from "svelte"; import { browser } from "$app/environment"; import { invoice as inv, request } from "$lib/store"; - import { - copy, - select, - f, - sat, - get, - s, - sats, - } from "$lib/utils"; - import Icon from "$comp/Icon.svelte"; + import { copy, select, f, sat, get, s, sats } from "$lib/utils"; import { t } from "$lib/translations"; import { enhance } from "$app/forms"; @@ -21,7 +12,7 @@ let submit = $state(); let { data } = $props(); - let { invoice, id, user, rates } = $state(data); + let { invoice, id, user } = $derived(data); let { amount, hash, @@ -34,30 +25,9 @@ text, tip, user: { username, currency }, - } = $state(invoice); + } = $derived(invoice); invoice.memo = user?.username; - - let refresh = (data) => { - $inv = null; - - ({ invoice, id } = data); - ({ - amount, - hash, - items, - memoPrompt, - type, - received, - prompt, - text, - tip, - user: { username }, - } = invoice); - }; - run(() => { - refresh(data); - }); </script> <form diff --git a/src/routes/(app)/invoice/[id]/tip/+page.server.ts b/src/routes/(app)/invoice/[id]/tip/+page.server.ts index a1ba8924..32eea868 100644 --- a/src/routes/(app)/invoice/[id]/tip/+page.server.ts +++ b/src/routes/(app)/invoice/[id]/tip/+page.server.ts @@ -1,13 +1,15 @@ -import { get } from "$lib/utils"; import invoice from "$lib/invoice"; +import getRates from "$lib/rates"; import { redirect } from "@sveltejs/kit"; export async function load({ parent }) { - const rates = await get("/rates"); - const { invoice } = await parent(); + const rates = await getRates(); + const { invoice, user } = await parent(); if (!invoice.amount) redirect(307, `/invoice/${invoice.id}`); - return { rates }; + const rate = rates[user.currency]; + const invoiceRate = rates[invoice.currency]; + return { rate, invoiceRate }; } export const actions = { diff --git a/src/routes/(app)/invoice/[id]/tip/+page.svelte b/src/routes/(app)/invoice/[id]/tip/+page.svelte index 1c651163..7999030e 100644 --- a/src/routes/(app)/invoice/[id]/tip/+page.svelte +++ b/src/routes/(app)/invoice/[id]/tip/+page.svelte @@ -63,7 +63,7 @@ let submit = $state(); let { data } = $props(); - let { invoice, id, user, rates } = $state(data); + let { invoice, id, user } = $state(data); let { aid, amount, @@ -83,7 +83,7 @@ let fullscreen; let currency = user?.currency || invoice.currency; - let rate = invoice.rate * (rates[currency] / rates[invoice.currency]); + let rate = invoice.rate * (data.rate / data.invoiceRate); $effect(() => { tip = Math.round((amount / 100) * untrack(() => tipPercent)); @@ -95,11 +95,7 @@ </script> <div class="container px-4 max-w-lg text-center mx-auto"> - <form - method="POST" - use:enhance - class="space-y-5" - > + <form method="POST" use:enhance class="space-y-5"> <input type="hidden" name="aid" value={aid} /> <input type="hidden" name="amount" value={amount} /> <input type="hidden" name="tip" value={tip} /> |
