aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/Balance.svelte8
-rw-r--r--src/lib/store.js1
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.svelte11
-rw-r--r--src/routes/(app)/[username]/(profile)/+page.svelte27
-rw-r--r--src/routes/(app)/buy/+page.svelte1
-rw-r--r--src/routes/(app)/login/+page.svelte2
6 files changed, 11 insertions, 39 deletions
diff --git a/src/components/Balance.svelte b/src/components/Balance.svelte
index fc986b1f..cf926b44 100644
--- a/src/components/Balance.svelte
+++ b/src/components/Balance.svelte
@@ -1,11 +1,11 @@
<script>
import Pin from "$comp/Pin.svelte";
import { f, s, sat, sats } from "$lib/utils";
- import { animatedRate, pin } from "$lib/store";
+ import { pin } from "$lib/store";
import { t } from "$lib/translations";
let show;
- export let user;
+ export let user, rate;
</script>
{#if show && user.haspin && $pin?.length !== 6}
@@ -20,10 +20,10 @@
>
{:else}
<div class="text-5xl font-bold tabular-nums">
- {#if isNaN($animatedRate)}
+ {#if isNaN(rate)}
<div class="text-gray-200">&mdash;</div>
{:else}
- {f((user.balance * $animatedRate) / sats, user.currency)}
+ {f((user.balance * rate) / sats, user.currency)}
{/if}
</div>
diff --git a/src/lib/store.js b/src/lib/store.js
index 2ae8c9b9..ee60058c 100644
--- a/src/lib/store.js
+++ b/src/lib/store.js
@@ -38,7 +38,6 @@ const persistLocal = (key, defaultValue) => {
return s;
};
-export const animatedRate = persistLocal("rate", 0);
export const avatar = writable();
export const banner = writable();
export const colorTheme = writable("from-primary to-gradient");
diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte
index 604f3fd0..71c282c4 100644
--- a/src/routes/(app)/[username]/(profile)/+layout.svelte
+++ b/src/routes/(app)/[username]/(profile)/+layout.svelte
@@ -1,7 +1,6 @@
<script>
import { hexToUint8Array } from "uint8array-extras";
import { copy, f, s, sats } from "$lib/utils";
- import { animatedRate } from "$lib/store";
import Icon from "$comp/Icon.svelte";
import { t } from "$lib/translations";
import { sign, send } from "$lib/nostr";
@@ -11,9 +10,9 @@
export let data;
let { encode, toWords } = bech32m;
- let events, user, subject, rates, src, text;
+ let events, user, subject, src, text;
- $: ({ events, user, rates, subject, src, text } = data);
+ $: ({ events, user, subject, src, rates, text } = data);
$: ({ currency, username: n, display } = subject);
$: username = n.length > 60 ? n.substr(0, 6) : display || n;
@@ -225,7 +224,7 @@
</div>
</div>
-{#if currency && !isNaN($animatedRate)}
+{#if currency}
<div
class="flex fixed w-full px-4 bg-white py-2 pb-3 bottom-0 bg-opacity-90 tabular-nums"
>
@@ -234,11 +233,11 @@
<div class="my-auto mr-1">1</div>
<img src="/images/bitcoin.svg" class="w-5 my-auto" alt="Bitcoin" />
</div>
- <div>= {f($animatedRate, currency)}</div>
+ <div>= {f(rates[currency], currency)}</div>
</div>
<div class="text-secondary flex ml-auto">
<div class="flex">
- <div class="mr-1">⚡️{s((1 * sats) / $animatedRate)} =</div>
+ <div class="mr-1">⚡️{s((1 * sats) / rates[currency])} =</div>
<div>{f(1, currency)}</div>
</div>
</div>
diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte
index 36512d1e..f5f7c6cb 100644
--- a/src/routes/(app)/[username]/(profile)/+page.svelte
+++ b/src/routes/(app)/[username]/(profile)/+page.svelte
@@ -7,7 +7,7 @@
import { t } from "$lib/translations";
import { ease, f, sat, sats } from "$lib/utils";
import { sign, send, encrypt, decrypt } from "$lib/nostr";
- import { event as e, password, rate, animatedRate } from "$lib/store";
+ import { event as e, password } from "$lib/store";
import { browser } from "$app/environment";
export let data;
@@ -64,36 +64,13 @@
latest = latest;
ready = true;
};
-
- let i;
- let o;
-
- rate.subscribe((n) => {
- if (!user?.currency) return;
- clearInterval(i);
-
- let r = ((rates[user.currency] / rates["USD"]) * n).toFixed(2);
-
- if (!r || isNaN(r)) return;
- if (!o) o = r;
-
- let t = 0;
- let d = o - r;
-
- i = setInterval(() => {
- if (!r) return;
- $animatedRate = (o - d * ease(t / 100)).toFixed(2);
- if (t > 80) (o = r) && clearInterval(i);
- t++;
- }, 10);
- });
</script>
<div class="space-y-5">
{#if user?.id === subject.id}
<div class="space-y-5">
<div class="flex justify-center lg:justify-start">
- <Balance {user} />
+ <Balance {user} rate={rates[user.currency]} />
</div>
{#if !user.balance}
diff --git a/src/routes/(app)/buy/+page.svelte b/src/routes/(app)/buy/+page.svelte
index 903eb7f4..952d9ff5 100644
--- a/src/routes/(app)/buy/+page.svelte
+++ b/src/routes/(app)/buy/+page.svelte
@@ -5,7 +5,6 @@
import Card from "$comp/Card.svelte";
import Calendar from "$comp/Calendar.svelte";
import Spinner from "$comp/Spinner.svelte";
- import { animatedRate } from "$lib/store";
import { f } from "$lib/utils";
export let data, form;
diff --git a/src/routes/(app)/login/+page.svelte b/src/routes/(app)/login/+page.svelte
index 08161cee..7b3ec6ac 100644
--- a/src/routes/(app)/login/+page.svelte
+++ b/src/routes/(app)/login/+page.svelte
@@ -1,10 +1,8 @@
<script>
import RegisterOrLogin from "$comp/RegisterOrLogin.svelte";
import { onMount } from "svelte";
- import { animatedRate, pin } from "$lib/store";
onMount(() => {
- $animatedRate = 0;
$pin = undefined;
localStorage.clear();
sessionStorage.clear();