diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/locales/en.json | 5 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.svelte | 14 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/payments/[...page]/+page.server.js | 6 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/payments/[...page]/+page.svelte | 29 | ||||
| -rw-r--r-- | src/routes/(app)/register/+page.server.js | 3 |
5 files changed, 43 insertions, 14 deletions
diff --git a/src/locales/en.json b/src/locales/en.json index 8f824e6f..c7d38583 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -174,7 +174,7 @@ }, "send": { "contacts": "Contacts", - "scan": "Scan", + "scan": "Scan QR", "paste": "Paste", "next": "Next", "placeholder": "Paste a bitcoin address, lightning invoice or coinos username" @@ -234,6 +234,9 @@ } }, "payments": { + "total": "Total", + "gainLoss": "Gain/Loss", + "presentValue": "Present Value", "amount": "Amount", "date": "Date", "id": "Transaction ID", diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index f228defc..7b81b797 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -96,14 +96,24 @@ <div class="flex gap-4 justify-center w-full"> <a href={`/${user.username}/receive`}> <button - class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-60 bg-black text-white" + class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-60" > <div class="mx-auto flex"> - <Icon icon="numpad" style="my-auto h-6 mr-2 invert" /> + <Icon icon="numpad" style="my-auto h-6 mr-2" /> <div class="my-auto mt-1">{$t("user.requestPayment")}</div> </div> </button> </a> + <a href={`/scan`}> + <button + class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-60" + > + <div class="mx-auto flex"> + <Icon icon="scan" style="my-auto h-6 mr-2" /> + <div class="my-auto mt-1">{$t("user.send.scan")}</div> + </div> + </button> + </a> {#if user.eligible} <a href={`/buy`}> diff --git a/src/routes/(app)/[username]/payments/[...page]/+page.server.js b/src/routes/(app)/[username]/payments/[...page]/+page.server.js index adc6dac8..cb94d71d 100644 --- a/src/routes/(app)/[username]/payments/[...page]/+page.server.js +++ b/src/routes/(app)/[username]/payments/[...page]/+page.server.js @@ -17,8 +17,8 @@ export async function load({ cookies, params, request }) { let url = `/payments?start=${start * 1000}&limit=${limit}&offset=${offset}`; if (end) url += `&end=${end * 1000}`; - let { total, payments } = await get(url, auth(cookies)); - let pages = new Array(Math.ceil(total / limit)); + let { count, payments, totals } = await get(url, auth(cookies)); + let pages = new Array(Math.ceil(count / limit)); - return { total, payments, page, pages, start, end }; + return { payments, page, pages, start, end, totals }; } diff --git a/src/routes/(app)/[username]/payments/[...page]/+page.svelte b/src/routes/(app)/[username]/payments/[...page]/+page.svelte index bdfcbb04..adfaf680 100644 --- a/src/routes/(app)/[username]/payments/[...page]/+page.svelte +++ b/src/routes/(app)/[username]/payments/[...page]/+page.svelte @@ -19,7 +19,8 @@ classic: 'classic' }; - let { start, end, user } = data; + let { start, end, user, rates } = data; + let change = ({ target: { value } }) => goto(value); let link = (p) => { if (p.pot) return `/pot/${p.pot}`; @@ -39,9 +40,9 @@ : 0; let p, - total, + totals, pages = []; - $: data && ({ page: p, pages, start, end, total, payments: $payments } = data); + $: data && ({ page: p, pages, start, end, totals, payments: $payments } = data); $: $page && ($newPayment = false); $: $newPayment && invalidate(`/users/${user.username}`); @@ -166,11 +167,7 @@ <a href={`/pot/${p.memo}`}> <div class="text-secondary flex"> <div class="my-auto mr-1"> - <img - src="/images/moneypot.png" - class="w-12" - alt="Pot" - /> + <img src="/images/moneypot.png" class="w-12" alt="Pot" /> </div> <div class="my-auto">Pot</div> @@ -225,6 +222,22 @@ <p class="text-secondary text-lg text-center">{$t('payments.empty')}</p> {/each} </div> + + <div class="grid grid-cols-3 w-full text-center"> + <span class="text-lg text-secondary">{$t('payments.total')}</span> + <span class="text-lg text-secondary">{$t('payments.presentValue')}</span> + <span class="text-lg text-secondary">{$t('payments.gainLoss')}</span> + + {#each Object.keys(totals) as c} + {@const total = totals[c]['fiat']} + {@const pv = (totals[c]['sats'] * rates[c]) / sats} + {@const gain = (pv * 100) / total - 100} + <span class="text-lg"><b>{f(total, c)}</b></span> + <span class="text-lg"><b>{f(pv, c)}</b></span> + <span class="text-lg" class:text-red-800={gain < 0}><b>{Math.abs(gain).toFixed(2)}%</b></span> + {/each} + </div> + <button class="ml-auto rounded-full border py-2 px-4 w-36 hover:opacity-80 flex mx-auto" on:click={csv} diff --git a/src/routes/(app)/register/+page.server.js b/src/routes/(app)/register/+page.server.js index 79aed8bc..4d740b5b 100644 --- a/src/routes/(app)/register/+page.server.js +++ b/src/routes/(app)/register/+page.server.js @@ -17,9 +17,12 @@ export const actions = { if (loginRedirect === 'undefined') loginRedirect = undefined; + console.log("OH", user) + try { await post('/register', { user }, { 'cf-connecting-ip': ip }); } catch (e) { + console.log(e) if (e.message.includes('taken')) error = e.message; } |
