diff options
| -rw-r--r-- | src/components/Numpad.svelte | 25 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.server.js | 2 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte | 3 |
3 files changed, 16 insertions, 14 deletions
diff --git a/src/components/Numpad.svelte b/src/components/Numpad.svelte index 5ffaa2ea..3647914e 100644 --- a/src/components/Numpad.svelte +++ b/src/components/Numpad.svelte @@ -9,11 +9,18 @@ fiat = !amount, submit = undefined; - export let amountFiat = amount ? amount * ($selectedRate / sats) : 0; - + let amountFiat = 0; let arrow = '<'; - let amountSats = amount; + $: update(amount, amountFiat); + let update = (a, f) => { + if (fiat) { + amount = Math.round(f / ($selectedRate / sats)); + } else { + amountFiat = ((a * $selectedRate) / sats).toFixed(2); + } + }; + let loading = false; let symbol = @@ -33,14 +40,6 @@ KRW: '₩' }[currency] || ''; - $: amount = parseInt(fiat ? Math.round(amountFiat / ($selectedRate / sats)) : amountSats); - - $: amountSatsFormatted = s(amountSats); - - $: amountFiatConverted = f(amountSats * ($selectedRate / sats), currency); - - $: amountSatsConverted = sat(amountFiat / ($selectedRate / sats)); - const numPad = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '0', '<']; const handleInput = (value) => { @@ -84,7 +83,7 @@ } else if (value !== '<' && parseInt(amountSats + value) > sats) { warning($t('user.receive.lessThan1BTCWarning')); } else { - amountSats = parseInt(amountSats + value); + amount = parseInt(amount.toString() + value); } } }; @@ -178,7 +177,7 @@ /> </div> <div class="mt-2"> - <span class="text-secondary mr-1">{fiat ? amountSatsConverted : amountFiatConverted}</span> + <span class="text-secondary mr-1">{fiat ? sat(amount) : f(amountFiat, currency)}</span> <button type="button" on:click={() => { diff --git a/src/routes/(app)/[username]/(profile)/+page.server.js b/src/routes/(app)/[username]/(profile)/+page.server.js index 085271fd..d6cf3984 100644 --- a/src/routes/(app)/[username]/(profile)/+page.server.js +++ b/src/routes/(app)/[username]/(profile)/+page.server.js @@ -5,7 +5,7 @@ export async function load({ cookies, params, parent, url }) { let { pubkey } = subject; let { since = 0 } = params; - let messages, invoices, sent, received; + let messages, invoices, sent, received; messages = invoices = sent = received = []; if (user) { diff --git a/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte index 6b216cb3..96d5cab7 100644 --- a/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte +++ b/src/routes/(app)/send/bitcoin/[address]/[...amount]/+page.svelte @@ -20,6 +20,8 @@ if (form?.message.includes('pin')) $pin = undefined; loading = false; }; + + let max = () => (amount = balance); </script> <button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" on:click={back}> @@ -37,6 +39,7 @@ <h1 class="text-3xl md:text-4xl font-semibold mb-2">{$t('payments.sendTo')}</h1> <p class="text-lg text-secondary">{address}</p> </div> + <Numpad bind:amount {currency} {submit} /> <form method="POST" use:enhance on:submit={toggle}> |
