1
0
Fork 0
mirror of https://github.com/mat-1/matdoesdev.git synced 2025-08-02 23:44:39 +00:00

fix /buttons/degrees not loading data immediately

This commit is contained in:
mat 2024-10-19 08:31:23 +00:00
commit bf7d2eb8ef
3 changed files with 20 additions and 15 deletions

View file

@ -8,7 +8,6 @@
pageIndexFromName, pageIndexFromName,
} from './88x31' } from './88x31'
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
import { page } from '$app/stores'
import ButtonLink from './ButtonLink.svelte' import ButtonLink from './ButtonLink.svelte'
import ExternalLinkIcon from './ExternalLinkIcon.svelte' import ExternalLinkIcon from './ExternalLinkIcon.svelte'
import ExternalLink from './ExternalLink.svelte' import ExternalLink from './ExternalLink.svelte'

View file

@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
import { pageIndexFromName, data } from '../88x31' import { pageIndexFromName, data, downloadData } from '../88x31'
import ButtonLink from '../ButtonLink.svelte' import ButtonLink from '../ButtonLink.svelte'
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { page } from '$app/stores' import { page } from '$app/stores'
@ -99,22 +99,26 @@
localStorage.setItem('88x31-degrees-targetPage', $targetPage) localStorage.setItem('88x31-degrees-targetPage', $targetPage)
} }
onMount(() => { onMount(async () => {
return page.subscribe(async (page) => { await downloadData()
const hash = decodeURIComponent(page.url.hash.slice(1))
let [origin, target] = hash.split('→')
if (origin === undefined) origin = '' updateFromHash()
if (target === undefined) target = ''
if (origin === '') origin = localStorage.getItem('88x31-degrees-originPage') ?? ''
if (target === '') target = localStorage.getItem('88x31-degrees-targetPage') ?? ''
if (origin !== '' && $originPage !== origin) originPage.set(origin)
if (target !== '' && $targetPage !== target) targetPage.set(target)
})
}) })
function updateFromHash() {
const hash = decodeURIComponent(location.hash.slice(1))
let [origin, target] = hash.split('→')
if (origin === undefined) origin = ''
if (target === undefined) target = ''
if (origin === '') origin = localStorage.getItem('88x31-degrees-originPage') ?? ''
if (target === '') target = localStorage.getItem('88x31-degrees-targetPage') ?? ''
if (origin !== '' && $originPage !== origin) originPage.set(origin)
if (target !== '' && $targetPage !== target) targetPage.set(target)
}
originPage.subscribe(calculatePath) originPage.subscribe(calculatePath)
targetPage.subscribe(calculatePath) targetPage.subscribe(calculatePath)
@ -126,6 +130,8 @@
} }
</script> </script>
<svelte:window on:hashchange={updateFromHash} />
<input <input
type="text" type="text"
bind:value={$originPage} bind:value={$originPage}