diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/Numpad.svelte | 30 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte | 27 |
2 files changed, 35 insertions, 22 deletions
diff --git a/src/components/Numpad.svelte b/src/components/Numpad.svelte index 3647914e..47bd9375 100644 --- a/src/components/Numpad.svelte +++ b/src/components/Numpad.svelte @@ -57,7 +57,7 @@ amountFiat = amountFiat.slice(0, amountFiat.length - 1); if (amountFiat.length === 0) { amountFiat = 0; - amountSats = 0; + amount = 0; } } } else if (value !== '.' && value !== '<' && parseInt(amountFiat + value) > $selectedRate) { @@ -70,25 +70,27 @@ } else { if (value === '.') { return; - } else if (!amountSats && value !== '<' && value !== '0') { - amountSats = parseInt(value); + } else if (!amount && value !== '<' && value !== '0') { + amount = parseInt(value); } else if (value === '<') { - if (amountSats !== 0) { - amountSats = Math.floor(amountSats / 10); - if (amountSats.length === 0) { - amountSats = 0; + if (amount !== 0) { + amount = Math.floor(amount / 10); + if (amount.length === 0) { + amount = 0; amountFiat = 0; } } - } else if (value !== '<' && parseInt(amountSats + value) > sats) { + } else if (value !== '<' && parseInt(amount + value) > sats) { warning($t('user.receive.lessThan1BTCWarning')); } else { + console.log('CLICK', amount.toString(), value); amount = parseInt(amount.toString() + value); + console.log('AMOUNT', amount); } } }; - $: html = fiat ? amountFiat : s(amountSats); + $: html = fiat ? amountFiat : s(amount); let prev = ''; @@ -123,10 +125,10 @@ if (fiat) { amountFiat = html; } else { - amountSats = parseInt(html.replace(/,/g, '')); + amount = parseInt(html.replace(/,/g, '')); } - if (!amountSats) amountSats = null; + if (!amount) amount = null; setTimeout(() => { if (!fiat) { @@ -182,11 +184,11 @@ type="button" on:click={() => { if (fiat) { - amountSats = parseInt((amountFiat / ($selectedRate / sats)).toFixed(0)); + amount = parseInt((amountFiat / ($selectedRate / sats)).toFixed(0)); } else { amountFiat = - (amountSats * ($selectedRate / sats)).toFixed(2) > 0.0 - ? (amountSats * ($selectedRate / sats)).toFixed(2) + (amount * ($selectedRate / sats)).toFixed(2) > 0.0 + ? (amount * ($selectedRate / sats)).toFixed(2) : 0; } fiat = !fiat; diff --git a/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte index 96d5cab7..cabe895f 100644 --- a/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte +++ b/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte @@ -3,15 +3,16 @@ import { enhance } from '$app/forms'; import { Icon, Numpad, Spinner } from '$comp'; import { page } from '$app/stores'; - import { back } from '$lib/utils'; + import { back, s, sat } from '$lib/utils'; import { pin } from '$lib/store'; export let data; export let form; let { address, amount } = $page.params; - let { currency } = data.user; + let { balance, currency } = data.user; let loading, submit; + let fiat; let toggle = () => (loading = true); @@ -21,7 +22,10 @@ loading = false; }; - let max = () => (amount = balance); + let max = () => { + fiat = false; + amount = balance; + }; </script> <button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" on:click={back}> @@ -34,13 +38,13 @@ </div> {/if} -<div class="container px-4 mt-20 max-w-xl mx-auto"> +<div class="container px-4 mt-20 max-w-xl mx-auto space-y-5"> <div class="text-center mb-8"> - <h1 class="text-3xl md:text-4xl font-semibold mb-2">{$t('payments.sendTo')}</h1> + <h1 class="text-3xl md:text-4xl font-semibold mb-2">{$t('payments.send')}</h1> <p class="text-lg text-secondary">{address}</p> </div> - <Numpad bind:amount {currency} {submit} /> + <Numpad bind:amount bind:fiat {currency} {submit} /> <form method="POST" use:enhance on:submit={toggle}> <input name="ts" value={Date.now()} type="hidden" /> @@ -48,11 +52,18 @@ <input name="amount" value={amount} type="hidden" /> <input name="pin" value={$pin} type="hidden" /> - <div class="flex w-full"> + <div class="flex justify-center gap-2"> + <button + type="button" + class="hover:opacity-80 bg-black text-white rounded-2xl py-3 px-4 mt-2 border font-bold" + on:click|preventDefault={max} + on:keydown={max}>Max ⚡️{s(balance)}</button + > + <button bind:this={submit} type="submit" - class="opacity-100 hover:opacity-80'} rounded-2xl border py-3 font-bold mx-auto mt-2 bg-black text-white px-4 w-24" + class="opacity-100 hover:opacity-80 rounded-2xl border py-3 font-bold mt-2 bg-black text-white px-4 w-24" disabled={loading} > {#if loading} |
