diff options
Diffstat (limited to 'src/lib/Tools/Wrapped.svelte')
| -rw-r--r-- | src/lib/Tools/Wrapped.svelte | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/lib/Tools/Wrapped.svelte b/src/lib/Tools/Wrapped.svelte index d3d2466b..10480607 100644 --- a/src/lib/Tools/Wrapped.svelte +++ b/src/lib/Tools/Wrapped.svelte @@ -13,6 +13,9 @@ import manga from '../../stores/manga.js'; import Error from '$lib/Error.svelte'; import { domToBlob } from 'modern-screenshot'; + import { browser } from '$app/environment'; + import { page } from '$app/stores'; + import { clearAllParameters } from './tool.js'; export let user: AniListAuthorisation; @@ -31,8 +34,24 @@ let width = 980; let forceDark = false; let highestRatedCount = 5; + let mounted = false; $: { + if (browser && mounted) { + $page.url.searchParams.set('transparency', transparency.toString()); + $page.url.searchParams.set('lightTheme', lightTheme.toString()); + $page.url.searchParams.set('watermark', watermark.toString()); + $page.url.searchParams.set('includeMusic', includeMusic.toString()); + $page.url.searchParams.set('includeSpecials', includeSpecials.toString()); + $page.url.searchParams.set('includeRepeats', includeRepeats.toString()); + $page.url.searchParams.set('width', width.toString()); + $page.url.searchParams.set('forceDark', forceDark.toString()); + $page.url.searchParams.set('highestRatedCount', highestRatedCount.toString()); + + history.replaceState(null, '', `?${$page.url.searchParams.toString()}`); + } + } + $: { includeMusic = includeMusic; includeSpecials = includeSpecials; includeRepeats = includeRepeats; @@ -87,6 +106,29 @@ }; onMount(async () => { + clearAllParameters([ + 'transparency', + 'lightTheme', + 'watermark', + 'includeMusic', + 'includeSpecials', + 'includeRepeats', + 'width', + 'forceDark', + 'highestRatedCount' + ]); + if (browser) { + transparency = $page.url.searchParams.get('transparency') === 'true'; + lightTheme = $page.url.searchParams.get('lightTheme') === 'true'; + watermark = $page.url.searchParams.get('watermark') === 'true'; + includeMusic = $page.url.searchParams.get('includeMusic') === 'true'; + includeSpecials = $page.url.searchParams.get('includeSpecials') === 'true'; + includeRepeats = $page.url.searchParams.get('includeRepeats') === 'true'; + width = parseInt($page.url.searchParams.get('width') || '980', 10); + forceDark = $page.url.searchParams.get('forceDark') === 'true'; + highestRatedCount = parseInt($page.url.searchParams.get('highestRatedCount') || '5', 10); + } + if (user !== undefined) { if ($userIdentity === '') { userIdentity.set(JSON.stringify(await getUserIdentity(user))); @@ -99,6 +141,8 @@ } await update(); + + mounted = true; }); const update = async () => { |