From e16062569d34755b1bae77aed75d4ef3992b01b9 Mon Sep 17 00:00:00 2001 From: Djuri Baars Date: Tue, 15 Apr 2025 23:21:34 +0200 Subject: [PATCH] feat: Add LNBits multi-currency support --- .../settings/DataSourceSettings.svelte | 26 ++++++++++++++ .../settings/ScreenSpecificSettings.svelte | 36 +++++++++++++++++-- src/lib/locales/en.json | 4 ++- 3 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/lib/components/settings/DataSourceSettings.svelte b/src/lib/components/settings/DataSourceSettings.svelte index 5891573..1166625 100644 --- a/src/lib/components/settings/DataSourceSettings.svelte +++ b/src/lib/components/settings/DataSourceSettings.svelte @@ -138,5 +138,31 @@ size={$uiSettings.inputSize} /> {/if} + + + + {#if $settings.lnbitsEnabled} + + + + HTTPS + + + {/if} diff --git a/src/lib/components/settings/ScreenSpecificSettings.svelte b/src/lib/components/settings/ScreenSpecificSettings.svelte index bae67df..4aa703b 100644 --- a/src/lib/components/settings/ScreenSpecificSettings.svelte +++ b/src/lib/components/settings/ScreenSpecificSettings.svelte @@ -5,9 +5,39 @@ import ToggleHeader from '../ToggleHeader.svelte'; import { uiSettings } from '$lib/uiSettings'; import { DataSourceType } from '$lib/types/dataSource'; + import { onMount } from 'svelte'; export let settings; export let isOpen = false; + + let availableCurrencies: string[] = []; + let prevLnbitsEnabled: boolean; + + function updateCurrencies(enabled: boolean) { + if (enabled) { + fetch(`https://${$settings.lnbitsInstance}/api/v1/currencies`) + .then((res) => res.json()) + .then((data) => { + availableCurrencies = data; + }); + } else { + // Remove any currencies from actCurrencies that aren't in availableCurrencies + $settings.actCurrencies = $settings.actCurrencies.filter((curr: string) => + $settings.availableCurrencies.includes(curr) + ); + availableCurrencies = $settings.availableCurrencies; + } + } + + onMount(() => { + prevLnbitsEnabled = $settings.lnbitsEnabled; + updateCurrencies($settings.lnbitsEnabled); + }); + + $: if (prevLnbitsEnabled !== $settings.lnbitsEnabled) { + prevLnbitsEnabled = $settings.lnbitsEnabled; + updateCurrencies($settings.lnbitsEnabled); + } @@ -104,9 +134,9 @@
{$_('section.settings.currencies')}
{$_('restartRequired')} - {#if $settings.availableCurrencies} - {#each $settings.availableCurrencies as c} - + {#if availableCurrencies} + {#each availableCurrencies as c} +