@@ -24,8 +24,6 @@ import {
24
24
} from "@fortawesome/free-solid-svg-icons" ;
25
25
import html from "html-template-tag" ;
26
26
import * as PF from "pathfinding" ;
27
- import { createStorage , type Storage } from "unstorage" ;
28
- import indexedDbDriver from "unstorage/drivers/indexedb" ;
29
27
import { fromZodError } from "zod-validation-error" ;
30
28
31
29
import type { Coords2D , Level , Lvl , StairList } from "./data/data-types.ts" ;
@@ -40,10 +38,13 @@ import {
40
38
roomSchema ,
41
39
} from "./data/schemas.ts" ;
42
40
import { btmStairs , stairs } from "./data/stairs.ts" ;
43
-
44
- const storage : Storage = createStorage ( {
45
- driver : indexedDbDriver ( { base : "map:" } ) ,
46
- } ) ;
41
+ import {
42
+ clearAll ,
43
+ getProfiles ,
44
+ getShade ,
45
+ setProfiles ,
46
+ setShade ,
47
+ } from "./data/storage.ts" ;
47
48
48
49
declare global {
49
50
function startApp ( ) : Promise < void > ;
@@ -96,6 +97,8 @@ library.add(
96
97
) ;
97
98
dom . watch ( ) ;
98
99
100
+ globalThis . clearAll = clearAll ;
101
+
99
102
/**
100
103
* Despite the name, this function is purely functional and has no state, though it does perform a side effect.
101
104
*
@@ -116,12 +119,6 @@ function toggleNav(isOpen: boolean): void {
116
119
}
117
120
globalThis . toggleNav = toggleNav ;
118
121
119
- async function clearAll ( ) : Promise < void > {
120
- await storage . clear ( ) ;
121
- globalThis . location . reload ( ) ;
122
- }
123
- globalThis . clearAll = clearAll ;
124
-
125
122
function createProfile ( profNum : number ) : void {
126
123
prof = profNum ;
127
124
const tempElementId = `tempProf${ prof } ` ;
@@ -220,7 +217,7 @@ function createCourse(num: number, profNum: number): void {
220
217
const zodErrorElement = document . querySelector ( "#zod-error" ) ;
221
218
222
219
async function applySavedProfiles ( ) : Promise < void > {
223
- const unparsedProfiles = await storage . getItem ( "profiles" ) ;
220
+ const unparsedProfiles = await getProfiles ( ) ;
224
221
const parsedProfiles = profilesListSchema . safeParse ( unparsedProfiles ?? [ ] ) ;
225
222
226
223
if ( parsedProfiles . success ) {
@@ -273,7 +270,7 @@ async function remProf(profNum: number): Promise<void> {
273
270
id ="tempProf1 "
274
271
> </ div > ` ;
275
272
276
- await storage . setItem ( "profiles" , profiles ) ;
273
+ await setProfiles ( profiles ) ;
277
274
await applySavedProfiles ( ) ;
278
275
}
279
276
globalThis . remProf = remProf ;
@@ -371,7 +368,7 @@ async function locateCourses(profNum: number): Promise<void> {
371
368
] ;
372
369
}
373
370
374
- await storage . setItem ( "profiles" , profiles ) ;
371
+ await setProfiles ( profiles ) ;
375
372
}
376
373
globalThis . locateCourses = locateCourses ;
377
374
@@ -599,15 +596,15 @@ async function toggleDarkMode(): Promise<void> {
599
596
const darkModeButton = document . querySelector ( "#darkModeButton" ) ! ;
600
597
601
598
darkModeButton . innerHTML = isDarkMode ? "Light Mode" : "Dark Mode" ;
602
- await storage . setItem ( "shade" , isDarkMode ? "dark" : "light" ) ;
599
+ await setShade ( isDarkMode ? "dark" : "light" ) ;
603
600
}
604
601
globalThis . toggleDarkMode = toggleDarkMode ;
605
602
606
603
async function startApp ( ) : Promise < void > {
607
604
lvl ( 1 ) ;
608
605
await applySavedProfiles ( ) ;
609
606
610
- if ( ( await storage . getItem ( "shade" ) ) === "dark" ) {
607
+ if ( ( await getShade ( ) ) === "dark" ) {
611
608
await toggleDarkMode ( ) ;
612
609
}
613
610
}
0 commit comments