diff options
| author | Mistivia <i@mistivia.com> | 2025-02-08 13:55:37 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-02-08 13:55:37 +0800 |
| commit | ea9350a570fcb8011bb2678ad8b60486772e411d (patch) | |
| tree | 81a0655e79cdaaf2dac8806f73bb6d0312ed26c3 /src/control/deck.js | |
| parent | 86b9e2de76283ac6ee1e7761dcf6ce0730f26e7a (diff) | |
impl ydke share
Diffstat (limited to 'src/control/deck.js')
| -rw-r--r-- | src/control/deck.js | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/control/deck.js b/src/control/deck.js index 328e106..98c48fb 100644 --- a/src/control/deck.js +++ b/src/control/deck.js @@ -1,11 +1,36 @@ import { writable } from "svelte/store"; +import { parseYdke } from '../utils'; let deck = writable({main: [], extra: [], side: []}); -let setDeck = (d) => { +function setDeck(d) { + d.main.sort(); + d.extra.sort(); + d.side.sort(); deck.set(d); + localStorage.setItem('cachedDeck', JSON.stringify(d)); }; +function initDeck() { + let url = window.location.href.split('#'); + if (url.length === 2) { + let deck = parseYdke(url[1]); + if (deck.main.length > 0 || deck.extra.length > 0 || deck.extra.length > 0) { + setDeck(deck); + window.location.replace("/"); + return; + } + } + let cachedDeck = localStorage.getItem('cachedDeck'); + if (cachedDeck !== null) { + cachedDeck = JSON.parse(cachedDeck); + setDeck(cachedDeck) + return; + } +} + +initDeck(); + export { deck, setDeck, |
