diff options
| author | Adam Soltys <[email protected]> | 2022-11-09 16:26:30 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-11-09 16:26:30 -0800 |
| commit | b18828c0188ffe3b85b1132b480e4849cfc1039f (patch) | |
| tree | 1be4b2ecdbbd2c23b2b4a5f1a42540fa2bad6bf7 /src | |
| parent | 6e7a39a81455f633a0c1479524e4fdb06a722914 (diff) | |
| download | coinos-ui-b18828c0188ffe3b85b1132b480e4849cfc1039f.tar.gz coinos-ui-b18828c0188ffe3b85b1132b480e4849cfc1039f.zip | |
unit reference on dashboard
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/+layout.svelte | 1 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/dashboard/+page.svelte | 64 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/_pos.svelte | 2 |
3 files changed, 51 insertions, 16 deletions
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 3d03e199..4cd08ab4 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -25,6 +25,7 @@ }; $: $selectedRate = r * (rates[u?.currency || 'USD'] / rates.USD); + $: $selectedRate = $rate * (rates[u?.currency || 'USD'] / rates.USD); onMount(() => { let localStorageLocale = localStorage.getItem(localeLocalStorageKey); diff --git a/src/routes/(app)/[username]/dashboard/+page.svelte b/src/routes/(app)/[username]/dashboard/+page.svelte index 43879fcb..3a90968c 100644 --- a/src/routes/(app)/[username]/dashboard/+page.svelte +++ b/src/routes/(app)/[username]/dashboard/+page.svelte @@ -9,8 +9,10 @@ export let data; let ease = (t) => (t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t); - let interval; + let interval, rateInterval; + let oldRate = $selectedRate; + let animatedRate = oldRate; $: animateRate($selectedRate); let animateRate = (newRate) => { if (!accountBalanceFiat) return; @@ -18,6 +20,17 @@ let newBalance = (user.account.balance * newRate) / sats; let oldBalance = parseFloat(accountBalanceFiat); let diff = oldBalance - newBalance; + let rateDiff = oldRate - newRate; + + clearInterval(rateInterval); + rateInterval = setInterval(() => { + let delta = rateDiff * ease(t / 100); + animatedRate = (oldRate - delta).toFixed(2); + if (t > 80) clearInterval(interval); + t++; + }, 10); + + oldRate = newRate; clearInterval(interval); interval = setInterval(() => { @@ -42,35 +55,54 @@ $: accountBalanceBtc = user.account.balance / sats; </script> -<div class="container px-4 max-w-md mx-auto mt-20"> - <div class="text-5xl font-bold mb-2"> - {$selectedRate ? f(accountBalanceFiat, user.currency) : $t('user.dashboard.fetchingRate')} - </div> +<div class="container px-4 max-w-md mx-auto mt-20 space-y-12"> + <div> + <div class="text-5xl font-bold mb-2"> + {$selectedRate ? f(accountBalanceFiat, user.currency) : $t('user.dashboard.fetchingRate')} + </div> - <div class="text-secondary text-2xl"> - ⚡️{s(user.account.balance)} + <div class="text-secondary text-2xl"> + ⚡️{s(user.account.balance)} + </div> </div> - <div class="grid sm:grid-cols-2 gap-2 mt-8"> + <div class="grid sm:grid-cols-2 gap-2"> <a href="/send"> - <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2" + <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full" >{$t('user.dashboard.withdraw')}</button > </a> <a href={`/${user.username}/receive`}> - <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2" + <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full" >{$t('user.dashboard.receive')}</button > </a> - <a href={`/${user.username}/settings`}> - <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2" - >Setup Account</button - > - </a> <a href={`/${user.username}/address`}> - <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2" + <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full" >Deposit</button > </a> + <a href={`/${user.username}/settings`}> + <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full" + >Settings</button + > + </a> + </div> + + <div class="grid grid-cols-2"> + <div class="text-secondary flex"> + <div class="flex mr-1"> + <div class="my-auto mr-1">1</div> + <img src="/images/bitcoin.svg" class="w-5 my-auto" /> + </div> + <div>= {f(animatedRate, user.currency)}</div> + </div> + <div class="text-secondary flex ml-auto"> + <div>{sat(sats)} =</div> + <div class="flex ml-1"> + <div class="my-auto mr-1">1</div> + <img src="/images/bitcoin.svg" class="w-5 my-auto" /> + </div> + </div> </div> </div> diff --git a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte index ccbeeff4..d5e17786 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte @@ -5,6 +5,8 @@ import { page } from '$app/stores'; let { rates, user } = $page.data; + + $: ({ rates, user } = $page.data); const fiats = Object.keys(rates); </script> |
