aboutsummaryrefslogtreecommitdiffstats
path: root/src/components
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-02-11 17:09:39 -0800
committerAdam Soltys <[email protected]>2026-02-11 17:09:39 -0800
commit3aa9ce1b5985397d7f568887ec6f881df13c1034 (patch)
tree2c459692dc5315e92924de6be9f0999a835e0f54 /src/components
parent8a4b0087cbfe8b43d9b43d19af6d991a646ef3d7 (diff)
downloadcoinos-ui-3aa9ce1b5985397d7f568887ec6f881df13c1034.tar.gz
coinos-ui-3aa9ce1b5985397d7f568887ec6f881df13c1034.zip
fix ts errors
Diffstat (limited to 'src/components')
-rw-r--r--src/components/Account.svelte22
-rw-r--r--src/components/Amount.svelte8
-rw-r--r--src/components/AmountField.svelte11
-rw-r--r--src/components/AppForm.svelte4
-rw-r--r--src/components/AppHeader.svelte10
-rw-r--r--src/components/Avatar.svelte5
-rw-r--r--src/components/Balance.svelte2
-rw-r--r--src/components/Event.svelte4
-rw-r--r--src/components/InvoiceData.svelte3
-rw-r--r--src/components/ItemForm.svelte20
-rw-r--r--src/components/LandingHeader.svelte2
-rw-r--r--src/components/Lnurlw.svelte7
-rw-r--r--src/components/LocaleSelector.svelte2
-rw-r--r--src/components/LocationsMap.svelte58
-rw-r--r--src/components/Nostr.svelte20
-rw-r--r--src/components/Numpad.svelte40
-rw-r--r--src/components/Password.svelte2
-rw-r--r--src/components/Payments.svelte2
-rw-r--r--src/components/Qr.svelte2
-rw-r--r--src/components/SetAmount.svelte3
-rw-r--r--src/components/SetType.svelte3
-rw-r--r--src/components/Success.svelte12
-rw-r--r--src/components/WalletPass.svelte4
23 files changed, 128 insertions, 118 deletions
diff --git a/src/components/Account.svelte b/src/components/Account.svelte
index 0eaf6dfb..d05addbe 100644
--- a/src/components/Account.svelte
+++ b/src/components/Account.svelte
@@ -13,7 +13,7 @@
forgetWalletPassword,
} from "$lib/passwordCache";
- let { user, rate, account } = $props();
+ let { user, rate, account }: any = $props();
let {
name,
seed,
@@ -27,8 +27,8 @@
let arkBalance = $state(0);
let arkLoading = $state(false);
let passwordPrompt = $state(false);
- let password = $state();
- let pendingUrl = $state();
+ let password: string | undefined = $state();
+ let pendingUrl: string | undefined = $state();
let cancel = $state(() => {
passwordPrompt = false;
pendingUrl = undefined;
@@ -41,7 +41,7 @@
const { decrypt } = await import("nostr-tools/nip49");
if (seed) {
// Legacy: per-account seed is raw hex key
- $arkkey = hex.encode(decrypt(seed, cached));
+ $arkkey = hex.encode(decrypt(seed, cached) as Uint8Array);
} else if (user.seed) {
// Master seed: derive m/86'/0'/0'/0/0
const [
@@ -58,7 +58,7 @@
let s = await mnemonicToSeed(mnemonic, cached);
let master = HDKey.fromMasterSeed(s, versions);
let arkChild = master.derive("m/86'/0'/0'/0/0");
- $arkkey = bytesToHex(arkChild.privateKey);
+ $arkkey = bytesToHex(arkChild.privateKey!);
} else {
return false;
}
@@ -76,9 +76,9 @@
if (isArk) {
pendingUrl = url;
if ($arkkey) {
- goto(pendingUrl);
+ goto(pendingUrl!);
} else if (await tryUnlockArk()) {
- goto(pendingUrl);
+ goto(pendingUrl!);
} else {
passwordPrompt = true;
}
@@ -91,7 +91,7 @@
let submitPassword = async () => {
const { decrypt } = await import("nostr-tools/nip49");
if (seed) {
- $arkkey = hex.encode(decrypt(seed, password));
+ $arkkey = hex.encode(decrypt(seed, password!) as Uint8Array);
} else if (user.seed) {
const [
{ HDKey },
@@ -102,12 +102,12 @@
import("@scure/bip39"),
import("@scure/bip39/wordlists/english.js"),
]);
- let entropy = await decrypt(user.seed, password);
+ let entropy = await decrypt(user.seed, password!);
let mnemonic = entropyToMnemonic(entropy, wordlist);
- let s = await mnemonicToSeed(mnemonic, password);
+ let s = await mnemonicToSeed(mnemonic, password!);
let master = HDKey.fromMasterSeed(s, versions);
let arkChild = master.derive("m/86'/0'/0'/0/0");
- $arkkey = bytesToHex(arkChild.privateKey);
+ $arkkey = bytesToHex(arkChild.privateKey!);
}
passwordPrompt = false;
if (pendingUrl) {
diff --git a/src/components/Amount.svelte b/src/components/Amount.svelte
index 4c7c487a..2587520a 100644
--- a/src/components/Amount.svelte
+++ b/src/components/Amount.svelte
@@ -2,14 +2,14 @@
import { copy, s, f, toFiat } from "$lib/utils";
import { fiat } from "$lib/store";
const {
- align,
+ align = "",
amount,
- locale,
- tip,
+ locale = undefined,
+ tip = undefined,
rate,
currency,
locked = false,
- } = $props();
+ }: any = $props();
const icon = $derived(locked ? "ph:lock-fill" : "ph:lightning-fill");
const canShowFiat = $derived($fiat && rate && currency);
diff --git a/src/components/AmountField.svelte b/src/components/AmountField.svelte
index 36e7d4a6..21c36631 100644
--- a/src/components/AmountField.svelte
+++ b/src/components/AmountField.svelte
@@ -6,12 +6,15 @@
let {
amount = $bindable(),
none = $t("accounts.none"),
- desc,
+ desc = "",
currency,
rate,
- label,
- name,
- } = $props();
+ label = "",
+ name = "",
+ locale = undefined,
+ submit = undefined,
+ element = undefined,
+ }: any = $props();
let setting = $state();
let set = () => {
diff --git a/src/components/AppForm.svelte b/src/components/AppForm.svelte
index ec33390a..026e4aba 100644
--- a/src/components/AppForm.svelte
+++ b/src/components/AppForm.svelte
@@ -42,7 +42,7 @@
let lud16 = $derived(`${user.username}@${$page.url.host}`);
- let el = $state();
+ let el: HTMLFormElement | undefined = $state();
let submit = async (e) => {
e.preventDefault();
let body = new FormData(el);
@@ -65,7 +65,7 @@
try {
await post(`/post/apps/delete`, { pubkey });
goto("/settings/nostr");
- } catch (e) {
+ } catch (e: any) {
fail(e.message);
}
};
diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte
index 0ab48706..f45f4d0c 100644
--- a/src/components/AppHeader.svelte
+++ b/src/components/AppHeader.svelte
@@ -8,12 +8,12 @@
let { user, subject = $bindable() } = $props();
- let w = $state();
+ let w: number | undefined = $state();
$effect(() => (subject = subject || user));
let bg = $derived(
- $banner?.id && $banner.id === subject?.id
- ? `url(${$banner.src})`
+ ($banner as any)?.id && ($banner as any).id === subject?.id
+ ? `url(${($banner as any).src})`
: subject?.banner
? subject.banner.includes(":")
? `url(${subject.banner})`
@@ -71,10 +71,10 @@
>
<nav class="flex justify-end items-center space-x-4 p-5">
{#if user}
- {#each links as { href, icon, flip, label }}
+ {#each links as { href, icon, label }}
<a {href} data-sveltekit-preload-code="eager" aria-label={label}>
<button class="btn-menu {opacity(href)}" aria-label={label}>
- <iconify-icon noobserver {icon} width={w > 640 ? 32 : 24} {flip}
+ <iconify-icon noobserver {icon} width={(w ?? 0) > 640 ? 32 : 24}
></iconify-icon>
</button>
</a>
diff --git a/src/components/Avatar.svelte b/src/components/Avatar.svelte
index 438008b8..ca35fb35 100644
--- a/src/components/Avatar.svelte
+++ b/src/components/Avatar.svelte
@@ -6,9 +6,10 @@
user: any;
size?: number;
disabled?: boolean;
+ class?: string;
}
- let { user, size = 32, disabled = false }: Props = $props();
+ let { user, size = 32, disabled = false, class: className = "" }: Props = $props();
let s = $derived(size.toString());
let link = $derived(
@@ -22,7 +23,7 @@
let fallback = $derived(
`${base}/punks/` + punk(user?.pubkey || user?.id || "aa"),
);
- let tmp = $derived($avatar?.id && $avatar.id === user?.id && $avatar.src);
+ let tmp = $derived(($avatar as any)?.id && ($avatar as any).id === user?.id && ($avatar as any).src);
let src = $derived(tmp || profile || fallback);
</script>
diff --git a/src/components/Balance.svelte b/src/components/Balance.svelte
index 5d1bfd7b..b05d9ac5 100644
--- a/src/components/Balance.svelte
+++ b/src/components/Balance.svelte
@@ -17,7 +17,7 @@
</script>
{#if show && user.haspin && $pin?.length !== 6}
- <Pin cancel={() => (show = false)} />
+ <Pin cancel={() => { show = false; return ""; }} />
{/if}
<div>
diff --git a/src/components/Event.svelte b/src/components/Event.svelte
index 8faba04d..3ecf00fc 100644
--- a/src/components/Event.svelte
+++ b/src/components/Event.svelte
@@ -9,7 +9,7 @@
import { page } from "$app/stores";
let amount = 21;
- let { event, minimal, last = true, user } = $props();
+ let { event, minimal = false, last = true, user = undefined }: any = $props();
let { author, parts, zaps, names, created_at, pubkey } = $derived(event);
let { id } = event;
@@ -25,7 +25,7 @@
event: await sign(request),
});
await post("/post/payments", { amount, payreq });
- } catch (e) {
+ } catch (e: any) {
console.log(e);
fail(e.message);
}
diff --git a/src/components/InvoiceData.svelte b/src/components/InvoiceData.svelte
index 3be12215..51f7b396 100644
--- a/src/components/InvoiceData.svelte
+++ b/src/components/InvoiceData.svelte
@@ -14,8 +14,9 @@
locale,
tip,
rate,
+ align = "",
t,
- } = $props();
+ }: any = $props();
let loaded = $state(false);
let { memo } = $derived(invoice);
diff --git a/src/components/ItemForm.svelte b/src/components/ItemForm.svelte
index 77437c1f..d087e2bf 100644
--- a/src/components/ItemForm.svelte
+++ b/src/components/ItemForm.svelte
@@ -8,21 +8,21 @@
import Spinner from "$comp/Spinner.svelte";
let { item = $bindable(), user } = $props();
- let fileInput = $state(), formElement = $state(), file, submitting = $state(), progress;
- let select = () => fileInput.click();
- let src = $state();
+ let fileInput: HTMLInputElement | undefined = $state(), formElement: HTMLFormElement | undefined = $state(), file: File, submitting = $state(), progress: any;
+ let select = () => fileInput!.click();
+ let src: string | undefined = $state();
- let tooLarge = {};
- let handleFile = async ({ target }, type) => {
+ let tooLarge: Record<string, boolean> = {};
+ let handleFile = async ({ target }: { target: EventTarget | null }, type: string) => {
tooLarge[type] = false;
- file = target.files[0];
+ file = (target as HTMLInputElement).files![0];
if (!file) return;
if (file.size > 10000000) return (tooLarge[type] = true);
var reader = new FileReader();
reader.onload = async (e) => {
- src = e.target.result;
+ src = (e.target as FileReader).result as string;
};
reader.readAsDataURL(file);
@@ -31,11 +31,11 @@
async function handleSubmit() {
try {
submitting = true;
- let data = new FormData(formElement);
+ let data = new FormData(formElement!);
if (src) {
try {
- let { hash } = JSON.parse(await upload(file, "item", progress));
+ let { hash } = JSON.parse(await upload(file, "item", progress) as string);
data.set("image", hash);
@@ -48,7 +48,7 @@
}
}
- const response = await fetch(formElement.action, {
+ const response = await fetch(formElement!.action, {
method: "POST",
body: data,
});
diff --git a/src/components/LandingHeader.svelte b/src/components/LandingHeader.svelte
index 603795ab..1a2af208 100644
--- a/src/components/LandingHeader.svelte
+++ b/src/components/LandingHeader.svelte
@@ -7,7 +7,7 @@
import DarkToggle from "$comp/DarkToggle.svelte";
import LocaleSelector from "$comp/LocaleSelector.svelte";
- let { howItWorks, faq, about, user } = $props();
+ let { howItWorks = undefined, faq = undefined, about = undefined, user = undefined }: any = $props();
let showMobileMenu = $state(false);
let header = $state();
diff --git a/src/components/Lnurlw.svelte b/src/components/Lnurlw.svelte
index 784e8468..ac79b101 100644
--- a/src/components/Lnurlw.svelte
+++ b/src/components/Lnurlw.svelte
@@ -1,7 +1,7 @@
<script lang="ts">
import { tick } from "svelte";
import handler from "$lib/handler";
- import { sats, f, s } from "$lib/utils";
+ import { sats, f, s, focus } from "$lib/utils";
import { t } from "$lib/translations";
import { enhance } from "$app/forms";
import Numpad from "$comp/Numpad.svelte";
@@ -23,8 +23,8 @@
let amount = $state(Math.round(minWithdrawable / 1000));
let amountFiat = $derived(parseFloat(((amount * rate) / sats).toFixed(2)));
- let submit = $state();
- let submitting = $state();
+ let submit: HTMLButtonElement | undefined = $state();
+ let submitting: boolean = $state(false);
let toggle = () => (submitting = !submitting);
let setMax = async (e) => {
@@ -70,7 +70,6 @@
use:enhance={handler(toggle)}
action="?/withdraw"
method="POST"
- onsubmit={submit}
class="space-y-5"
>
<input name="amount" value={amount} type="hidden" />
diff --git a/src/components/LocaleSelector.svelte b/src/components/LocaleSelector.svelte
index e6fbdec8..6511eccd 100644
--- a/src/components/LocaleSelector.svelte
+++ b/src/components/LocaleSelector.svelte
@@ -2,7 +2,7 @@
import { run } from "svelte/legacy";
import { t, locale, locales } from "$lib/translations";
- let { style } = $props();
+ let { style = "" }: any = $props();
let l = $state($locale);
const handleChange = ({ currentTarget }) => {
diff --git a/src/components/LocationsMap.svelte b/src/components/LocationsMap.svelte
index 3abdfcc4..26f32ee8 100644
--- a/src/components/LocationsMap.svelte
+++ b/src/components/LocationsMap.svelte
@@ -5,15 +5,15 @@
import { back } from "$lib/utils";
let { locations } = $props();
- let map;
- let mapContainer = $state(),
- mapWrapper = $state();
- let markers = [];
- let search = $state();
- let clearSearch = (e) => (search = "");
+ let map: any;
+ let mapContainer: any = $state(),
+ mapWrapper: any = $state();
+ let markers: any[] = [];
+ let search: string = $state("");
+ let clearSearch = (e: any) => (search = "");
let currentIndex = -1;
- let timeout = $state();
+ let timeout: any = $state();
let full = () => {
if (!document.fullscreenElement) {
@@ -32,17 +32,18 @@
map.resize();
} else {
- if (document.exitFullscreen) {
- document.exitFullscreen();
- } else if (document.mozCancelFullScreen) {
+ let doc = document as any;
+ if (doc.exitFullscreen) {
+ doc.exitFullscreen();
+ } else if (doc.mozCancelFullScreen) {
/* Firefox */
- document.mozCancelFullScreen();
- } else if (document.webkitExitFullscreen) {
+ doc.mozCancelFullScreen();
+ } else if (doc.webkitExitFullscreen) {
/* Chrome, Safari and Opera */
- document.webkitExitFullscreen();
- } else if (document.msExitFullscreen) {
+ doc.webkitExitFullscreen();
+ } else if (doc.msExitFullscreen) {
/* IE/Edge */
- document.msExitFullscreen();
+ doc.msExitFullscreen();
}
}
};
@@ -58,7 +59,7 @@
};
let selected = $state();
- function select(m) {
+ function select(m: any) {
selected = m;
stopFlying();
currentIndex = inview.indexOf(m);
@@ -114,11 +115,11 @@
timeout = setTimeout(startFlying, 4000);
}
- function debounce(func, delay) {
- let timeout;
+ function debounce(func: any, delay: any) {
+ let timeout: any;
let immediate = true;
- return function (...args) {
+ return function (this: any, ...args: any[]) {
const context = this;
if (immediate) {
@@ -137,7 +138,8 @@
function stopFlying() {
updateLabelVisibility();
if (!timeout) return;
- timeout = clearTimeout(timeout);
+ clearTimeout(timeout);
+ timeout = undefined;
if (currentPopup) {
currentPopup.remove();
@@ -147,7 +149,7 @@
map.off("moveend");
}
- let inview = $state([]);
+ let inview: any[] = $state([]);
let updateLabelVisibility = debounce(() => {
inview = [];
@@ -167,20 +169,20 @@
inview = inview.sort((a, b) => a.tags.name.localeCompare(b.tags.name));
}, 200);
- let locationMarkers = {};
- let popups = {};
+ let locationMarkers: any = {};
+ let popups: any = {};
let counter = 0;
- let maplibrePromise;
+ let maplibrePromise: any;
const loadMaplibre = async () => {
- if (window.maplibregl) return window.maplibregl;
+ if ((window as any).maplibregl) return (window as any).maplibregl;
if (maplibrePromise) return maplibrePromise;
maplibrePromise = new Promise((resolve, reject) => {
const existing = document.querySelector("script[data-maplibre]");
if (existing) {
- if (window.maplibregl) return resolve(window.maplibregl);
- existing.addEventListener("load", () => resolve(window.maplibregl));
+ if ((window as any).maplibregl) return resolve((window as any).maplibregl);
+ existing.addEventListener("load", () => resolve((window as any).maplibregl));
existing.addEventListener("error", reject);
return;
}
@@ -197,7 +199,7 @@
script.async = true;
script.defer = true;
script.dataset.maplibre = "true";
- script.onload = () => resolve(window.maplibregl);
+ script.onload = () => resolve((window as any).maplibregl);
script.onerror = reject;
document.head.appendChild(script);
});
diff --git a/src/components/Nostr.svelte b/src/components/Nostr.svelte
index 8718d4eb..e7fd0e58 100644
--- a/src/components/Nostr.svelte
+++ b/src/components/Nostr.svelte
@@ -10,11 +10,11 @@
import { nostrConnectRelay } from "$lib/nostr";
import Success from "$comp/Success.svelte";
- let { id } = $props();
+ let { id = undefined }: any = $props();
let extensionAvailable = $derived(browser && window.nostr);
let cancel = () => {
- eventToSign.set();
+ eventToSign.set(undefined);
showNsec = false;
connectUrl = undefined;
$signer = "cancel";
@@ -29,7 +29,7 @@
let hadSigner = $state(!!$signer);
- let connectUrl = $state();
+ let connectUrl: string | undefined = $state();
let nostrConnect = async () => {
const { Relay } = await import("nostr-tools/relay");
const { nip04, generateSecretKey, getPublicKey } = await import(
@@ -76,7 +76,7 @@
});
};
- let nsec = $state();
+ let nsec: string = $state("");
let showNsec = $state();
let toggleNsec = () => {
$signer = {
@@ -86,7 +86,7 @@
let nsecSign = async () => {
const { nip19, getPublicKey } = await import("nostr-tools");
- let sk;
+ let sk: Uint8Array;
if (nsec.startsWith("nsec")) sk = nip19.decode(nsec).data as Uint8Array;
else sk = hexToBytes(nsec);
@@ -108,13 +108,13 @@
const signerSigned = async () => {
await new Promise((r) => setTimeout(r, 100));
let sig = await navigator.clipboard.readText();
- $signer.params.sig = sig;
- $signer.ready = true;
+ ($signer as any).params.sig = sig;
+ ($signer as any).ready = true;
$signer = $signer;
};
let signUrl = $derived(
- `nostrsigner:${encodeURIComponent(JSON.stringify($eventToSign))}?compressionType=none&returnType=signature&type=sign_event&appName=Coinos`,
+ `nostrsigner:${encodeURIComponent(JSON.stringify($eventToSign))}?compressionType=none&returnType=signature&type=sign_event&appName=Coinos` as string,
);
</script>
@@ -127,7 +127,7 @@
>
<h1 class="text-center text-2xl font-semibold">Nostr sign</h1>
- {#if $eventToSign.sig && !hadSigner}
+ {#if ($eventToSign as any).sig && !hadSigner}
<Success />
{:else}
{#if connectUrl}
@@ -150,7 +150,7 @@
></iconify-icon>
{$t("payments.openLink")}</a
>
- <button class="btn" onclick={() => copy(connectUrl)}>
+ <button class="btn" onclick={() => copy(connectUrl!)}>
<iconify-icon noobserver icon="ph:copy-bold" width="32"
></iconify-icon>
{$t("payments.copy")}</button
diff --git a/src/components/Numpad.svelte b/src/components/Numpad.svelte
index 664010e1..6a9f3c6e 100644
--- a/src/components/Numpad.svelte
+++ b/src/components/Numpad.svelte
@@ -10,11 +10,11 @@
amount = $bindable(),
currency = "USD",
fiat = $bindable(),
- element,
+ element = $bindable(),
rate = $bindable(),
- locale,
- submit = undefined,
- amountFiat = 0,
+ locale = undefined,
+ submit = $bindable(undefined),
+ amountFiat = $bindable(0),
} = $props();
// ---- Local state ----
@@ -26,7 +26,7 @@
let symbol = $state("");
let position = $state("before");
- function getCurrencyInfo(locale = "en-US", currency) {
+ function getCurrencyInfo(locale: any = "en-US", currency: string) {
const l = typeof locale === "function" ? locale() : locale || "en-US";
const region = l.length >= 2 ? l.slice(-2) : "";
const currencyDisplay =
@@ -39,7 +39,7 @@
maximumFractionDigits: 2,
});
const parts = formatter.formatToParts(123456.78);
- const { value: decimal } = parts.find((p) => p.type === "decimal");
+ const { value: decimal } = parts.find((p) => p.type === "decimal")!;
const currencyPart = parts.find((p) => p.type === "currency");
const sym = currencyPart ? currencyPart.value : "";
const firstNumberIndex = parts.findIndex((p) => p.type === "integer");
@@ -77,14 +77,14 @@
if (fiat) {
const numericFiat =
parseFloat((fiatDigits || "0").replace(/\D/g, "")) / 100;
- amountFiat = isFinite(numericFiat) ? numericFiat.toFixed(2) : "0.00";
+ amountFiat = isFinite(numericFiat) ? numericFiat.toFixed(2) : "0.00" as any;
amount = numericFiat ? Math.round((numericFiat * sats) / rate) : 0;
} else {
// integer-only sats, already normalized
const a = parseInt((html || "0").replace(/[^\d]/g, "")) || 0;
amount = a || 0;
const fval = amount ? (amount * rate) / sats : 0;
- amountFiat = fval ? fval.toFixed(2) : "0.00";
+ amountFiat = fval ? fval.toFixed(2) : "0.00" as any;
}
};
@@ -149,17 +149,17 @@
if (!node) return;
const range = document.createRange();
const sel = getSelection();
- const L = node.length ?? node.textContent?.length ?? 0;
+ const L = (node as any).length ?? node.textContent?.length ?? 0;
range.setStart(node, L);
range.setEnd(node, L);
- sel.removeAllRanges();
- sel.addRange(range);
+ sel?.removeAllRanges();
+ sel?.addRange(range);
});
}
prevHtml = html.toString();
};
- const handleInput = (value) => {
+ const handleInput = (value: string) => {
if (fiat) {
if (value === arrow) {
fiatDigits = fiatDigits.length > 1 ? fiatDigits.slice(0, -1) : "0";
@@ -187,12 +187,12 @@
input(null, true);
};
- const select = (e) => {
+ const select = (e: any) => {
const range = document.createRange();
range.selectNodeContents(e.target);
const sel = getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
+ sel?.removeAllRanges();
+ sel?.addRange(range);
};
const blur = () => {
@@ -211,7 +211,7 @@
element && (element.innerHTML = html);
} else {
// going -> fiat
- const cents = Math.round((parseFloat(amountFiat || "0") || 0) * 100);
+ const cents = Math.round((parseFloat(String(amountFiat) || "0") || 0) * 100);
fiatDigits = Math.max(0, cents).toString();
fiat = true;
html = formatFiatFromDigits(fiatDigits, decimalChar);
@@ -226,11 +226,11 @@
if (!node) return;
const range = document.createRange();
const sel = getSelection();
- const L = node.length ?? node.textContent?.length ?? 0;
+ const L = (node as any).length ?? node.textContent?.length ?? 0;
range.setStart(node, L);
range.setEnd(node, L);
- sel.removeAllRanges();
- sel.addRange(range);
+ sel?.removeAllRanges();
+ sel?.addRange(range);
});
$fiatStore = fiat;
@@ -255,7 +255,7 @@
onMount(() => {
fiat = $fiatStore;
if (fiat) {
- const cents = Math.round((parseFloat(amountFiat || "0") || 0) * 100);
+ const cents = Math.round((parseFloat(String(amountFiat) || "0") || 0) * 100);
fiatDigits = Math.max(0, cents).toString();
html = formatFiatFromDigits(fiatDigits, decimalChar); // keep html in sync on mount
} else {
diff --git a/src/components/Password.svelte b/src/components/Password.svelte
index cc91d554..02d65948 100644
--- a/src/components/Password.svelte
+++ b/src/components/Password.svelte
@@ -6,7 +6,7 @@
import { password as pw, passwordPrompt } from "$lib/store";
let { user } = $props();
- let password = $state();
+ let password: string | undefined = $state();
let cancel = () => ($passwordPrompt = false);
diff --git a/src/components/Payments.svelte b/src/components/Payments.svelte
index 4d6f1da1..ff3f0d19 100644
--- a/src/components/Payments.svelte
+++ b/src/components/Payments.svelte
@@ -6,7 +6,7 @@
import { t } from "$lib/translations";
import locales from "$lib/locales";
import { fiat } from "$lib/store";
- const { fund, locale, user, payments } = $props();
+ const { fund = undefined, locale, user, payments }: any = $props();
const language = $derived(user?.language || "en");
</script>
diff --git a/src/components/Qr.svelte b/src/components/Qr.svelte
index 6a34ee7c..37b1708c 100644
--- a/src/components/Qr.svelte
+++ b/src/components/Qr.svelte
@@ -1,7 +1,7 @@
<script lang="ts">
import { onMount } from "svelte";
import { browser } from "$app/environment";
- let { icon, text } = $props();
+ let { icon = "", text }: any = $props();
let qr = $state();
let screenfull;
diff --git a/src/components/SetAmount.svelte b/src/components/SetAmount.svelte
index a28f207a..8a1573bd 100644
--- a/src/components/SetAmount.svelte
+++ b/src/components/SetAmount.svelte
@@ -14,8 +14,9 @@
setAmount,
newAmount = $bindable(0),
toggleAmount,
+ element = undefined,
t,
- } = $props();
+ }: any = $props();
</script>
{#if settingAmount}
diff --git a/src/components/SetType.svelte b/src/components/SetType.svelte
index ffc4cca8..4734cb07 100644
--- a/src/components/SetType.svelte
+++ b/src/components/SetType.svelte
@@ -11,8 +11,9 @@
setAmount,
setType,
toggleType,
+ activeOnly = false,
t,
- } = $props();
+ }: any = $props();
</script>
diff --git a/src/components/Success.svelte b/src/components/Success.svelte
index 20557f9f..6a0e8eae 100644
--- a/src/components/Success.svelte
+++ b/src/components/Success.svelte
@@ -2,9 +2,9 @@
import { browser } from "$app/environment";
import { scale } from "svelte/transition";
import Amount from "$comp/Amount.svelte";
- const { amount, tip, rate, currency, locale, title } = $props();
+ const { amount, tip = undefined, rate, currency, locale, title = "" }: any = $props();
- let ConfettiComp = $state(null);
+ let ConfettiComp: any = $state(null);
let loaded = $state(false);
$effect(() => {
if (browser)
@@ -13,10 +13,12 @@
});
});
- $effect(async () => {
+ $effect(() => {
if (!browser || !loaded || ConfettiComp) return;
- const mod = await import("svelte-confetti");
- ConfettiComp = mod.Confetti;
+ (async () => {
+ const mod = await import("svelte-confetti");
+ ConfettiComp = mod.Confetti;
+ })();
});
</script>
diff --git a/src/components/WalletPass.svelte b/src/components/WalletPass.svelte
index e7a3c7f9..f6d611d0 100644
--- a/src/components/WalletPass.svelte
+++ b/src/components/WalletPass.svelte
@@ -9,7 +9,7 @@
rememberWalletPassword,
forgetWalletPassword,
} from "$lib/passwordCache";
- let { cancel, password = $bindable(), submit } = $props();
+ let { cancel = $bindable(), password = $bindable(), submit } = $props();
let revealPassword = $state();
let rememberForMs = $state(defaultRememberForMs);
@@ -75,7 +75,7 @@
id="rememberFor"
class="w-full"
value={rememberForMs}
- onchange={(e) => (rememberForMs = Number(e.target.value))}
+ onchange={(e) => (rememberForMs = Number((e.target as HTMLSelectElement).value))}
>
{#each rememberForOptions as option}
<option value={option.ms}>{option.label}</option>