diff --git a/web/src/components/dialog/PickerItem.svelte b/web/src/components/dialog/PickerItem.svelte index d0fe542f..9b3eaaca 100644 --- a/web/src/components/dialog/PickerItem.svelte +++ b/web/src/components/dialog/PickerItem.svelte @@ -22,13 +22,16 @@ let imageLoaded = $state(false); let hideSkeleton = $state(false); - let validUrl = false; - try { - new URL(item.url); - validUrl = true; - } catch {} + const validUrl = $derived.by(() => { + try { + new URL(item.url); + return true; + } catch { + return false; + } + }); - const isTunnel = validUrl && new URL(item.url).pathname === "/tunnel"; + const isTunnel = $derived(validUrl && new URL(item.url).pathname === "/tunnel"); const loaded = () => { imageLoaded = true; diff --git a/web/src/components/misc/FileReceiver.svelte b/web/src/components/misc/FileReceiver.svelte index f0c73c21..1137d67f 100644 --- a/web/src/components/misc/FileReceiver.svelte +++ b/web/src/components/misc/FileReceiver.svelte @@ -23,7 +23,7 @@ onImport, }: Props = $props(); - let selectorStringMultiple = maxFileNumber > 1 ? ".multiple" : ""; + const selectorStringMultiple = $derived(maxFileNumber > 1 ? ".multiple" : ""); let fileInput: HTMLInputElement; diff --git a/web/src/components/misc/SectionHeading.svelte b/web/src/components/misc/SectionHeading.svelte index 2549aa80..9f4d7e75 100644 --- a/web/src/components/misc/SectionHeading.svelte +++ b/web/src/components/misc/SectionHeading.svelte @@ -22,7 +22,7 @@ copyData = "", }: Props = $props(); - const sectionURL = `${page.url.origin}${page.url.pathname}#${sectionId}`; + const sectionURL = $derived(`${page.url.origin}${page.url.pathname}#${sectionId}`); let copied = $state(false); diff --git a/web/src/components/save/OmniboxIcon.svelte b/web/src/components/save/OmniboxIcon.svelte index 2b1f05de..dbaa0aa1 100644 --- a/web/src/components/save/OmniboxIcon.svelte +++ b/web/src/components/save/OmniboxIcon.svelte @@ -8,7 +8,11 @@ let { loading }: Props = $props(); - let animated = $state(loading); + let animated = $state(false); + + $effect(() => { + animated = loading; + }); /* initial spinner state is equal to loading state,