diff options
| author | Adam Soltys <[email protected]> | 2022-09-30 15:52:10 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-09-30 15:52:27 -0700 |
| commit | 63e3eaaa7bf3ba43b95927c1421b0b13cb5816b3 (patch) | |
| tree | ca8b4e6a04b4b977379f3b147c2eccc23de04fb6 /src/routes | |
| parent | 6bc16274bd37759c060d18e39f8caee373b09dd2 (diff) | |
| download | coinos-ui-63e3eaaa7bf3ba43b95927c1421b0b13cb5816b3.tar.gz coinos-ui-63e3eaaa7bf3ba43b95927c1421b0b13cb5816b3.zip | |
sent payment confirmation
Diffstat (limited to 'src/routes')
| -rw-r--r-- | src/routes/+layout.server.js | 3 | ||||
| -rw-r--r-- | src/routes/[username]/transactions/[...page]/+page.svelte | 6 | ||||
| -rw-r--r-- | src/routes/invoice/+server.js | 6 | ||||
| -rw-r--r-- | src/routes/invoice/[id]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/logout/+page.server.js | 1 | ||||
| -rw-r--r-- | src/routes/send/bitcoin/[address]/+page.server.js | 9 | ||||
| -rw-r--r-- | src/routes/sent/+page.svelte | 38 |
7 files changed, 50 insertions, 15 deletions
diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index 3ebf8be2..ea3ccfdb 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -2,8 +2,9 @@ import { error, redirect } from '@sveltejs/kit'; import cookie from 'cookie'; import { protectedRoutes } from '$lib/utils'; import { get, post, auth } from '$lib/utils'; +import { env } from '$env/dynamic/public'; -const btc = import.meta.env.VITE_BTC; +export const { PUBLIC_BTC: btc } = env; export async function load({ request, setHeaders, url, params }) { let { token } = cookie.parse(request.headers.get('cookie') || ''); diff --git a/src/routes/[username]/transactions/[...page]/+page.svelte b/src/routes/[username]/transactions/[...page]/+page.svelte index 3042e574..a3e6850a 100644 --- a/src/routes/[username]/transactions/[...page]/+page.svelte +++ b/src/routes/[username]/transactions/[...page]/+page.svelte @@ -27,7 +27,7 @@ {#if pages.length > 1} {#each pages as _, i} <a href={`/${user.username}/transactions/${i + 1}`} class:active={page === i + 1}> - <div class="border py-2 px-4 border-r-0 last:border-r hover:opacity-80"> + <div class="border py-2 px-4 rounded-full border-2 w-12 h-12 hover:opacity-80 mr-1 text-center my-auto"> {i + 1} </div> </a> @@ -75,7 +75,7 @@ </div> <style> - .active { - @apply font-bold; + .active div { + @apply bg-gray-100; } </style> diff --git a/src/routes/invoice/+server.js b/src/routes/invoice/+server.js index 759c9315..9b96b114 100644 --- a/src/routes/invoice/+server.js +++ b/src/routes/invoice/+server.js @@ -4,12 +4,6 @@ export async function POST({ request, parent }) { let { amount, currency, network = 'lightning', prompt, rate, tip, user } = await request.json(); let invoice = { amount, currency, network, prompt, rate, tip }; - if (network === 'lightning') { - invoice.text = (await post('/lightning/invoice', { amount }, auth(request))).text; - } else { - invoice.address = (await get('/address?network=bitcoin&type=bech32')).address; - } - return new Response(JSON.stringify(await post('/invoice', { invoice, user }, auth(request))), { headers: { 'content-type': 'application/json' } }); diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/invoice/[id]/+page.svelte index 094f698e..7ff63862 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/invoice/[id]/+page.svelte @@ -45,7 +45,7 @@ $: tip = Math.round((amount / 100) * tipPercent); $invoices[id] = { amount, id, rate, received, text, tip, username }; - $: $invoices[id]?.received && goto(`/invoice/${id}/paid`); + $: $invoices[id]?.received >= $invoices[id]?.amount && goto(`/invoice/${id}/paid`); $: amountFiat = parseFloat(((amount * rate) / sats).toFixed(2)); diff --git a/src/routes/logout/+page.server.js b/src/routes/logout/+page.server.js index 726094fd..01ddc1aa 100644 --- a/src/routes/logout/+page.server.js +++ b/src/routes/logout/+page.server.js @@ -8,7 +8,6 @@ const opts = { }; export async function load({ cookies }) { - console.log('COOKIES', cookies); cookies.set('set-cookie', [ cookies.serialize('token', '', { ...opts, diff --git a/src/routes/send/bitcoin/[address]/+page.server.js b/src/routes/send/bitcoin/[address]/+page.server.js index fa440394..4cc3736d 100644 --- a/src/routes/send/bitcoin/[address]/+page.server.js +++ b/src/routes/send/bitcoin/[address]/+page.server.js @@ -1,8 +1,11 @@ import { redirect } from '@sveltejs/kit'; +import { btc as asset, auth, post } from '$lib/utils'; + export const actions = { default: async ({ request }) => { - let form = Object.fromEntries(await request.formData()); - console.log('send bitcoin', form); - throw redirect(307, '/'); + let { address, amount } = Object.fromEntries(await request.formData()); + let { tx } = await post('/bitcoin/fee', { address, amount, asset }, auth(request)); + await post('/bitcoin/send', { address, tx }, auth(request)); + throw redirect(307, '/sent'); } }; diff --git a/src/routes/sent/+page.svelte b/src/routes/sent/+page.svelte new file mode 100644 index 00000000..6e4cb539 --- /dev/null +++ b/src/routes/sent/+page.svelte @@ -0,0 +1,38 @@ +<script> + import { toast } from '@zerodevx/svelte-toast'; + import { browser } from '$app/environment'; + import { t } from '$lib/translations'; + import { LottiePlayer } from '@lottiefiles/svelte-lottie-player'; + import { goto } from '$app/navigation'; + + export let data; + let { user } = data; + + toast.pop(0); + + const done = () => { + goto(`/${user.username}/transactions`); + }; +</script> + +<div class="text-center mt-20 md:mt-0"> + {#if browser} + <div class="w-full mx-auto max-w-xl"> + <LottiePlayer + src="/lottie/success.json" + autoplay={true} + loop={true} + controls={false} + renderer="svg" + background="transparent" + /> + </div> + {/if} + <h1 class="text-3xl md:text-4xl font-bold mb-6">{$t('invoice.paymentSuccessful')}</h1> + <button + class="bg-black text-white rounded-2xl w-20 py-3 font-bold hover:opacity-80" + on:click={done} + > + {$t('invoice.done')} + </button> +</div> |
