diff options
| author | Adam Soltys <[email protected]> | 2023-10-08 00:17:32 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-10-08 00:17:32 -0700 |
| commit | 0212fe0032eb0c5d6bfb74ebaab42543b73d6d6b (patch) | |
| tree | 56bffdb4556c10bde68d5aed3bea389197e9965c /src/routes/(app) | |
| parent | 222bbc9080fbb15861cc5c0802449fcf06a53532 (diff) | |
| download | coinos-ui-0212fe0032eb0c5d6bfb74ebaab42543b73d6d6b.tar.gz coinos-ui-0212fe0032eb0c5d6bfb74ebaab42543b73d6d6b.zip | |
payments fixes
Diffstat (limited to 'src/routes/(app)')
20 files changed, 122 insertions, 108 deletions
diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index ed8a90f3..331161bb 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -51,16 +51,16 @@ <div class="w-[240px] lg:absolute space-y-5 left-20 mx-auto lg:mr-10"> <h1 class="text-3xl font-bold text-center mx-auto">{display || username}</h1> - {#if subject.address} - <div - class="text-secondary mx-auto text-center lg:text-left lg:mx-0" - class:line-clamp-3={hideBio} - on:click={toggleBio} - on:keydown={toggleBio} - > - {subject.address} - </div> - {/if} + {#if subject.address} + <div + class="text-secondary mx-auto text-center lg:text-left lg:mx-0" + class:line-clamp-3={hideBio} + on:click={toggleBio} + on:keydown={toggleBio} + > + {subject.address} + </div> + {/if} <div class="flex justify-around"> <a href={`/${subject.pubkey}/follows`} diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index 2de58873..84aa4425 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -95,7 +95,9 @@ <div class="flex flex-wrap gap-4 justify-center w-full"> <a href={`/${user.username}/receive`} class="w-full md:w-60"> - <button class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-full md:w-60"> + <button + class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-full md:w-60" + > <div class="mx-auto flex"> <Icon icon="numpad" style="my-auto h-6 mr-2" /> <div class="my-auto mt-1">{$t('user.requestPayment')}</div> @@ -103,7 +105,9 @@ </button> </a> <a href={`/scan`} class="w-full md:w-60"> - <button class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-full md:w-60"> + <button + class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-full md: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> diff --git a/src/routes/(app)/[username]/card/[serial]/+page.svelte b/src/routes/(app)/[username]/card/[serial]/+page.svelte index aee3be28..afdaf65d 100644 --- a/src/routes/(app)/[username]/card/[serial]/+page.svelte +++ b/src/routes/(app)/[username]/card/[serial]/+page.svelte @@ -6,30 +6,30 @@ </script> <div class="space-y-5"> -<div class="relative flex justify-center gap-2"> - <h1 class="text-2xl md:text-3xl font-semibold my-auto">Card {serial}</h1> -</div> -<div class="flex justify-center"> - <a href={`/send/pot/${serial}`}> - <button - class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-60 bg-black text-white justify-center gap-2" - > - <svg - xmlns="http://www.w3.org/2000/svg" - class="invert text-black peer-placeholder-shown:text-gray-300 h-6 w-6 my-auto" - fill="none" - viewBox="0 0 24 24" - stroke="currentColor" + <div class="relative flex justify-center gap-2"> + <h1 class="text-2xl md:text-3xl font-semibold my-auto">Card {serial}</h1> + </div> + <div class="flex justify-center"> + <a href={`/send/pot/${serial}`}> + <button + class="rounded-full border py-3 px-6 font-bold hover:opacity-80 flex w-60 bg-black text-white justify-center gap-2" > - <path - stroke-linecap="round" - stroke-linejoin="round" - stroke-width="2" - d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" - /> - </svg> - <div class="my-auto">Add Funds</div> - </button> - </a> -</div> + <svg + xmlns="http://www.w3.org/2000/svg" + class="invert text-black peer-placeholder-shown:text-gray-300 h-6 w-6 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + > + <path + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="2" + d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" + /> + </svg> + <div class="my-auto">Add Funds</div> + </button> + </a> + </div> </div> diff --git a/src/routes/(app)/[username]/generate/+page.svelte b/src/routes/(app)/[username]/generate/+page.svelte index 33bf64c4..b9274434 100644 --- a/src/routes/(app)/[username]/generate/+page.svelte +++ b/src/routes/(app)/[username]/generate/+page.svelte @@ -14,10 +14,10 @@ let gen = async () => { if (!browser) return; - if (user.pubkey) { - goto($loginRedirect || `/${user.username}`, { invalidateAll: true }); - return; - } + if (user.pubkey) { + goto($loginRedirect || `/${user.username}`, { invalidateAll: true }); + return; + } if (!$password) $passwordPrompt = true; diff --git a/src/routes/(app)/[username]/invoice/[id]/+page.svelte b/src/routes/(app)/[username]/invoice/[id]/+page.svelte index 508550ba..2d204255 100644 --- a/src/routes/(app)/[username]/invoice/[id]/+page.svelte +++ b/src/routes/(app)/[username]/invoice/[id]/+page.svelte @@ -101,12 +101,12 @@ let toggleType = async () => { invoice.type = invoice.type === types.lightning ? types.bitcoin : types.lightning; - ({ hash } = await post(`/${username}/invoice`, { + ({ id } = await post(`/${username}/invoice`, { invoice, user: { username, currency } })); - goto(`./${hash}`, { invalidateAll: true }); + goto(`./${id}`, { invalidateAll: true }); }; </script> diff --git a/src/routes/(app)/[username]/map/+page.svelte b/src/routes/(app)/[username]/map/+page.svelte index b5e4dfad..99c822d3 100644 --- a/src/routes/(app)/[username]/map/+page.svelte +++ b/src/routes/(app)/[username]/map/+page.svelte @@ -1,6 +1,6 @@ <script> - import { LocationsMap } from "$comp"; - export let data; + import { LocationsMap } from '$comp'; + export let data; let { locations } = data; </script> diff --git a/src/routes/(app)/[username]/payments/[...page]/+page.server.js b/src/routes/(app)/[username]/payments/[...page]/+page.server.js index cb94d71d..a3b0ad6f 100644 --- a/src/routes/(app)/[username]/payments/[...page]/+page.server.js +++ b/src/routes/(app)/[username]/payments/[...page]/+page.server.js @@ -2,7 +2,9 @@ import { get, auth } from '$lib/utils'; let limit = 25; -export async function load({ cookies, params, request }) { +export async function load({ cookies, depends, params, request }) { + depends('app:payments'); + let parts = params.page.split('/'); let start, end, page; diff --git a/src/routes/(app)/[username]/payments/[...page]/+page.svelte b/src/routes/(app)/[username]/payments/[...page]/+page.svelte index 69f51f37..2ea225ad 100644 --- a/src/routes/(app)/[username]/payments/[...page]/+page.svelte +++ b/src/routes/(app)/[username]/payments/[...page]/+page.svelte @@ -2,7 +2,7 @@ import { Avatar, Icon } from '$comp'; import { onMount } from 'svelte'; import { format } from 'date-fns'; - import { newPayment, payments } from '$lib/store'; + import { newPayment } from '$lib/store'; import { t } from '$lib/translations'; import { get, f, s, sat, sats, types } from '$lib/utils'; import { page } from '$app/stores'; @@ -11,7 +11,7 @@ export let data; - let { start, end, user, rates } = data; + let { start, end, user, rates, payments } = data; let change = ({ target: { value } }) => goto(value); let link = (p) => { @@ -34,7 +34,7 @@ let p, totals, pages = []; - $: data && ({ page: p, pages, start, end, totals, payments: $payments } = data); + $: data && ({ page: p, pages, start, end, totals, payments } = data); $: $page && ($newPayment = false); $: $newPayment && invalidate(`/users/${user.username}`); @@ -136,7 +136,7 @@ </div> <div class="text-base"> - {#each $payments as p} + {#each payments as p} <a href={`/payment/${p.id}`}> <div class="grid grid-cols-3 border-b h-24 hover:bg-gray-100 px-4"> <div class="whitespace-nowrap my-auto"> @@ -216,7 +216,7 @@ </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.total')}</span> <span class="text-lg text-secondary">{$t('payments.presentValue')}</span> <span class="text-lg text-secondary">{$t('payments.gainLoss')}</span> @@ -226,7 +226,9 @@ {@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> + <span class="text-lg" class:text-red-800={gain < 0} + ><b>{Math.abs(gain).toFixed(2)}%</b></span + > {/each} </div> diff --git a/src/routes/(app)/[username]/receive/[...param]/+page.svelte b/src/routes/(app)/[username]/receive/[...param]/+page.svelte index a97dc776..d7001079 100644 --- a/src/routes/(app)/[username]/receive/[...param]/+page.svelte +++ b/src/routes/(app)/[username]/receive/[...param]/+page.svelte @@ -5,7 +5,6 @@ import { page } from '$app/stores'; import { requestRedirect } from '$lib/store'; import { browser } from '$app/environment'; - import { goto } from '$app/navigation'; export let data; let type = 'lightning'; diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 842c2eba..762e836e 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -138,7 +138,9 @@ <div class="font-bold flex justify-around items-center border-b pb-3 text-secondary"> {#each tabs.filter((t) => t.name !== 'shopify') as { name, key }} <a href={`/${user.username}/settings/${name}`}> - <button class="hover:opacity-80" class:text-black={tab === name || (tab === "shopify" && name === "pos")} + <button + class="hover:opacity-80" + class:text-black={tab === name || (tab === 'shopify' && name === 'pos')} >{$t(`user.settings.${key}`)}</button > </a> diff --git a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte index 34399ad5..47c4c4c6 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte @@ -64,28 +64,32 @@ $: url = `${$page.url.host}/${user.username}`; $: full = `${$page.url.protocol}//${url}`; - $: addr = `${user.username}@${$page.url.host}`; + $: addr = `${user.username}@${$page.url.host}`; </script> <div> <label for="username" class="font-bold mb-1 block">{$t('user.settings.username')}</label> <div class="flex mb-2"> - <input - type="text" - name="username" - bind:value={user.username} - class="border-r-0 rounded-r-none w-auto min-w-0 pr-1 grow" - /> - <div class="text-gray-600 p-4 my-auto bg-gray-100 border border-r-0 pl-1">@{$page.url.host}</div> - <div class="text-gray-600 border-l-0 bg-gray-100 rounded-r-2xl p-4 my-auto border w-16" > - <a href={`/qr/${encodeURIComponent(addr)}`}> - <Icon icon="qr" style="invert" /> - </a> + <input + type="text" + name="username" + bind:value={user.username} + class="border-r-0 rounded-r-none w-auto min-w-0 pr-1 grow" + /> + <div class="text-gray-600 p-4 my-auto bg-gray-100 border border-r-0 pl-1"> + @{$page.url.host} + </div> + <div class="text-gray-600 border-l-0 bg-gray-100 rounded-r-2xl p-4 my-auto border w-16"> + <a href={`/qr/${encodeURIComponent(addr)}`}> + <Icon icon="qr" style="invert" /> + </a> </div> </div> <div class="flex mb-2"> - <div class="text-gray-600 rounded-l-2xl p-4 my-auto border bg-gray-100 pr-1">{$page.url.host}/</div> + <div class="text-gray-600 rounded-l-2xl p-4 my-auto border bg-gray-100 pr-1"> + {$page.url.host}/ + </div> <input type="text" name="username" @@ -93,9 +97,9 @@ class="grow border-l-0 rounded-l-none border-r-0 rounded-r-none w-auto pl-1 min-w-0" /> <div class="text-gray-600 rounded-r-2xl p-4 my-auto border bg-gray-100 w-16"> - <a href={`/qr/${encodeURIComponent(full)}`}> - <Icon icon="qr" style="invert" /> - </a> + <a href={`/qr/${encodeURIComponent(full)}`}> + <Icon icon="qr" style="invert" /> + </a> </div> </div> </div> diff --git a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte index ef5b7869..057d8c20 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte @@ -33,7 +33,9 @@ </div> <a href="./shopify"> - <button class="flex rounded-full border py-2 px-4 font-bold hover:opacity-80 w-full gap-2 my-5 justify-center"> + <button + class="flex rounded-full border py-2 px-4 font-bold hover:opacity-80 w-full gap-2 my-5 justify-center" + > <img src="/icons/shopify.svg" class="w-8" /> <div class="my-auto">Shopify Integration</div> </button> diff --git a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte index a08785f6..c01db734 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte @@ -52,12 +52,12 @@ return true; }; -let disablingPin = false; + let disablingPin = false; let togglePin = async () => { if (user.haspin) { try { - disablingPin = true; + disablingPin = true; await tick(); submit.click(); } catch (e) { @@ -122,7 +122,7 @@ let disablingPin = false; }; </script> -<input type="hidden" name="newpin" value={disablingPin ? "delete" : pin} /> +<input type="hidden" name="newpin" value={disablingPin ? 'delete' : pin} /> <input type="hidden" name="confirm" bind:value={password} /> <div class="relative mb-5"> diff --git a/src/routes/(app)/login/+page.svelte b/src/routes/(app)/login/+page.svelte index dce523cb..84ecc3ad 100644 --- a/src/routes/(app)/login/+page.svelte +++ b/src/routes/(app)/login/+page.svelte @@ -4,7 +4,7 @@ import { animatedRate, pin } from '$lib/store'; onMount(() => { - $animatedRate = 0; + $animatedRate = 0; $pin = undefined; localStorage.clear(); sessionStorage.clear(); diff --git a/src/routes/(app)/payment/[id]/+page.svelte b/src/routes/(app)/payment/[id]/+page.svelte index 5037eec2..12bb1c2d 100644 --- a/src/routes/(app)/payment/[id]/+page.svelte +++ b/src/routes/(app)/payment/[id]/+page.svelte @@ -45,10 +45,10 @@ {#if p.type === types.pot} <div> <span class="text-lg text-secondary my-auto mr-2">{amount > 0 ? 'From' : 'To'}</span> - <a href={`/pot/${p.memo}`}> + <a href={`/pot/${p.memo}`}> <div class="flex"> <div class="my-auto"> - <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 ml-1">{p.memo}</div> </div> @@ -126,7 +126,7 @@ </div> {/if} - {#if ['laughingbean', 'burnabyartigiano', 'milanowestend', 'eotl', 'bigbite', 'edgemontartigiano'].includes(user.username.toLowerCase()) } + {#if ['laughingbean', 'burnabyartigiano', 'milanowestend', 'eotl', 'bigbite', 'edgemontartigiano'].includes(user.username.toLowerCase())} <button class="text-sm md:text-lg rounded-full border py-2 px-4 hover:opacity-80 min-w-[72px] bg-black text-white" on:click={print}>Print Receipt</button diff --git a/src/routes/(app)/pot/[name]/+page.svelte b/src/routes/(app)/pot/[name]/+page.svelte index 31e439d3..ea1e45f2 100644 --- a/src/routes/(app)/pot/[name]/+page.svelte +++ b/src/routes/(app)/pot/[name]/+page.svelte @@ -30,14 +30,14 @@ <div class="md:shadow-xl rounded-3xl md:px-10 pt-5 pb-10 space-y-5 w-full md:mx-5"> <div class="relative flex justify-center gap-2"> <!-- <p class="absolute right-0 top-1 underline"><Icon icon="settings" /></p> --> - {#if name.split('-').length === 4} - <h1 class="text-2xl md:text-3xl font-semibold my-auto">Card {name}</h1> + {#if name.split('-').length === 4} + <h1 class="text-2xl md:text-3xl font-semibold my-auto">Card {name}</h1> {:else} <img src="/images/moneypot.jpg" class="w-24" alt="Pot" /> - <div class="my-auto"> - <h1 class="text-2xl font-semibold my-auto">{$t('payments.moneyPot')}</h1> - <h1 class="text-secondary my-auto">{name}</h1> - </div> + <div class="my-auto"> + <h1 class="text-2xl font-semibold my-auto">{$t('payments.moneyPot')}</h1> + <h1 class="text-secondary my-auto">{name}</h1> + </div> {/if} </div> {#if show} @@ -60,7 +60,7 @@ class="rounded-full border py-3 px-2 font-bold hover:opacity-80 flex gap-1 w-full justify-center" > <Icon icon="plus" /> - {$t('payments.addFunds')} + {$t('payments.addFunds')} </button> </a> </div> @@ -70,7 +70,7 @@ class="rounded-full border py-3 px-2 font-bold hover:opacity-80 flex gap-1 w-full justify-center" > <Icon icon="minus" style="rotate-180" /> - {$t('payments.takeFunds')} + {$t('payments.takeFunds')} </button> </a> </div> @@ -85,10 +85,10 @@ </button> <button class="rounded-full border py-3 px-2 font-bold hover:opacity-80 flex gap-1 w-full justify-center" - on:click={() => copy($page.url.host + $page.url.pathname)} + on:click={() => copy($page.url.host + $page.url.pathname)} > <Icon icon="copy" style="w-6" /> - {$t('payments.copyLink')} + {$t('payments.copyLink')} </button> </div> <div class="text-base"> diff --git a/src/routes/(app)/pot/[name]/sweep/+page.svelte b/src/routes/(app)/pot/[name]/sweep/+page.svelte index 17d707cc..9b473af3 100644 --- a/src/routes/(app)/pot/[name]/sweep/+page.svelte +++ b/src/routes/(app)/pot/[name]/sweep/+page.svelte @@ -4,14 +4,13 @@ import { Icon } from '$comp'; import { t } from '$lib/translations'; - export let data; + export let data; - let { amount, name, user, rates } = data; - let { currency } = user; - $: rate = rates[currency]; + let { amount, name, user, rates } = data; + let { currency } = user; + $: rate = rates[currency]; </script> - <div class="container px-4 max-w-xl mx-auto mt-10 space-y-5 text-center"> <div class="w-full flex"> <a href="/" class="mx-auto"> @@ -19,17 +18,17 @@ </a> </div> - <div class="flex w-full py-5 max-w-[200px] mx-auto" in:scale={{ start: 0.5 }}> - <Icon icon="check" style="mx-auto" /> - </div> - <h1 class="text-3xl md:text-4xl font-bold mb-6">{$t('payments.fundsClaimed')}</h1> - <h2 class="text-2xl md:text-3xl font-semibold"> - {f(fiat(amount, rate), currency)} - </h2> - <h3 class="text-secondary md:text-lg mb-6 mt-1"> - ⚡️{s(amount)} - </h3> - </div> + <div class="flex w-full py-5 max-w-[200px] mx-auto" in:scale={{ start: 0.5 }}> + <Icon icon="check" style="mx-auto" /> + </div> + <h1 class="text-3xl md:text-4xl font-bold mb-6">{$t('payments.fundsClaimed')}</h1> + <h2 class="text-2xl md:text-3xl font-semibold"> + {f(fiat(amount, rate), currency)} + </h2> + <h3 class="text-secondary md:text-lg mb-6 mt-1"> + ⚡️{s(amount)} + </h3> +</div> <a href={`/${user.username}/payments`}> <div class="opacity-0 w-screen h-screen fixed top-0 left-0 z-50" /> diff --git a/src/routes/(app)/pot/[name]/withdraw/+page.svelte b/src/routes/(app)/pot/[name]/withdraw/+page.svelte index da564709..7be643a9 100644 --- a/src/routes/(app)/pot/[name]/withdraw/+page.svelte +++ b/src/routes/(app)/pot/[name]/withdraw/+page.svelte @@ -9,7 +9,7 @@ export let data; export let form; - let { rates } = data; + let { rates } = data; let { amount, name } = $page.params; let { currency } = data.user; let loading; @@ -35,7 +35,7 @@ {/if} <div class="container px-4 mt-20 max-w-xl mx-auto"> - <Numpad bind:amount bind:currency bind:rate {submit} /> + <Numpad bind:amount bind:currency bind:rate {submit} /> <form method="POST" use:enhance on:submit={submit}> <input name="name" value={name} type="hidden" /> diff --git a/src/routes/(app)/qr/[text]/+page.svelte b/src/routes/(app)/qr/[text]/+page.svelte index d903da0e..9e56ab29 100644 --- a/src/routes/(app)/qr/[text]/+page.svelte +++ b/src/routes/(app)/qr/[text]/+page.svelte @@ -7,5 +7,5 @@ <Qr {src} /> <div class="text-center w-full font-bold"> - {text} + {text} </div> diff --git a/src/routes/(app)/send/invoice/[id]/+page.svelte b/src/routes/(app)/send/invoice/[id]/+page.svelte index a71c697a..a558895c 100644 --- a/src/routes/(app)/send/invoice/[id]/+page.svelte +++ b/src/routes/(app)/send/invoice/[id]/+page.svelte @@ -29,7 +29,7 @@ let external = async () => { let invoice = { type: 'lightning', amount, currency }; - let {id }= await post(`/${recipient.username}/invoice`, { + let { id } = await post(`/${recipient.username}/invoice`, { invoice, user: { username: recipient.username } }); |
