From 47873912ae85ab99a4fd462c2cb1541e9ceff316 Mon Sep 17 00:00:00 2001
From: secondl1ght <85003930+secondl1ght@users.noreply.github.com>
Date: Mon, 22 Aug 2022 14:30:03 -0400
Subject: initial hookup of currency rates
---
src/components/About.svelte | 2 +-
src/lib/store.js | 3 +++
src/locales/en.json | 8 ++++----
src/routes/+layout.server.js | 5 ++++-
src/routes/+layout.svelte | 6 +++++-
src/routes/[username]/settings/+page.svelte | 23 ++++++++++++++++++++---
6 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/src/components/About.svelte b/src/components/About.svelte
index 909cbcf5..817d9026 100644
--- a/src/components/About.svelte
+++ b/src/components/About.svelte
@@ -66,7 +66,7 @@
{$_('about.locations.header')}
- {@html $_('about.locations.description')}
+ {@html $_('about.locations.description')}
diff --git a/src/lib/store.js b/src/lib/store.js
index c0b0df97..8469dab7 100644
--- a/src/lib/store.js
+++ b/src/lib/store.js
@@ -28,6 +28,9 @@ const persistLocal = (key, defaultValue) => {
};
export const rate = writable();
+export const rates = writable();
+export const selectedRate = writable();
+export const conversion = writable();
export const user = writable();
export const invoiceAmount = writable();
export const invoiceAmountFiat = writable();
diff --git a/src/locales/en.json b/src/locales/en.json
index 1e3dcbcd..e4fb9f39 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -23,10 +23,10 @@
"Husband, father, brother, son"
]
},
- "locations": {
- "header": "Locations",
- "description": "These are businesses that are accepting bitcoin using CoinOS point of sale. If you are using our application, please let us know!"
- }
+ "locations": {
+ "header": "Locations",
+ "description": "These are businesses that are accepting bitcoin using CoinOS point of sale. If you are using our application, please let us know!"
+ }
},
"error": {
"header": "Error",
diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js
index e05380a7..551f1686 100644
--- a/src/routes/+layout.server.js
+++ b/src/routes/+layout.server.js
@@ -5,6 +5,7 @@ import { get } from '$lib/utils';
export async function load({ request, setHeaders, url, params }) {
let { token } = cookie.parse(request.headers.get('cookie') || '');
let user;
+ let rates;
if (token) {
user = await get('/me', { accept: 'application/json', authorization: `Bearer ${token}` });
@@ -13,5 +14,7 @@ export async function load({ request, setHeaders, url, params }) {
}
}
- return { user, token };
+ rates = await get('/rates');
+
+ return { user, token, rates };
}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 12db17c3..4cf819fc 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -5,7 +5,7 @@
import '../app.css';
import { onMount } from 'svelte';
import { connect } from '$lib/socket';
- import { user, token } from '$lib/store';
+ import { user, token, rate, rates, selectedRate, conversion } from '$lib/store';
import { page } from '$app/stores';
import { browser } from '$app/env';
import { goto } from '$app/navigation';
@@ -17,6 +17,10 @@
export let data;
+ $rates = data.rates;
+ $: $conversion = data.rates[data.user.currency] / $rate;
+ $: $selectedRate = $rate * $conversion;
+
let ready = false;
onMount(() => {
diff --git a/src/routes/[username]/settings/+page.svelte b/src/routes/[username]/settings/+page.svelte
index 9644c3ac..5ddbfbc4 100644
--- a/src/routes/[username]/settings/+page.svelte
+++ b/src/routes/[username]/settings/+page.svelte
@@ -1,11 +1,13 @@
{#if $user}
@@ -126,8 +141,10 @@
-