diff options
| -rw-r--r-- | import_map.json | 1 | ||||
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 8 | ||||
| -rw-r--r-- | src/lib/storage.ts | 7 | ||||
| -rw-r--r-- | src/routes/blog/+layout.svelte | 6 |
5 files changed, 20 insertions, 3 deletions
diff --git a/import_map.json b/import_map.json index 4b3c413..ab4ff7d 100644 --- a/import_map.json +++ b/import_map.json @@ -5,6 +5,7 @@ "$lib": "./src/lib", "$lib/": "./src/lib/", "@memdmp/keyframegen": "jsr:@memdmp/keyframegen", + "@dmpmem/storage": "npm:@dmpmem/storage", "openpgp": "npm:openpgp", "mdsvex": "npm:mdsvex" } diff --git a/package.json b/package.json index 3e3e787..2b96c9e 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ }, "license": "AGPL-1.0-only", "dependencies": { + "@dmpmem/storage": "^0.1.0", "@memdmp/keyframegen": "https://npm.jsr.io/~/11/@jsr/memdmp__keyframegen/0.2.1.tgz", "mdsvex": "0.12.6", "openpgp": "6.1.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f22a7a..1bf99da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@dmpmem/storage': + specifier: ^0.1.0 + version: 0.1.0 '@memdmp/keyframegen': specifier: https://npm.jsr.io/~/11/@jsr/memdmp__keyframegen/0.2.1.tgz version: '@jsr/memdmp__keyframegen@https://npm.jsr.io/~/11/@jsr/memdmp__keyframegen/0.2.1.tgz' @@ -64,6 +67,9 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@dmpmem/storage@0.1.0': + resolution: {integrity: sha512-L4JPc/LDxqUtEv4/vTueCYevP6KjzoUWRPekZJykACKsCJwb/Z6QNTvf85xvvlltlWD/IRfFRQe+ASFk1RFgIg==} + '@esbuild/aix-ppc64@0.25.1': resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} engines: {node: '>=18'} @@ -1074,6 +1080,8 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@dmpmem/storage@0.1.0': {} + '@esbuild/aix-ppc64@0.25.1': optional: true diff --git a/src/lib/storage.ts b/src/lib/storage.ts new file mode 100644 index 0000000..60ecfa3 --- /dev/null +++ b/src/lib/storage.ts @@ -0,0 +1,7 @@ +import { StorageManager } from '@dmpmem/storage' + +export const localStorage = new StorageManager('local', 'mem.estrogen.zone:'); +export const sessionStorage = new StorageManager('session', 'mem.estrogen.zone:'); +export const memoryStorage = new StorageManager('memory', 'mem.estrogen.zone:'); + +export const blogStorage = new StorageManager(localStorage, 'blog:'); diff --git a/src/routes/blog/+layout.svelte b/src/routes/blog/+layout.svelte index 86447b4..61ab5f3 100644 --- a/src/routes/blog/+layout.svelte +++ b/src/routes/blog/+layout.svelte @@ -1,4 +1,5 @@ <script lang="ts"> + import { blogStorage } from '$/lib/storage'; import { page } from '$app/state'; import { onDestroy, onMount, type Snippet } from 'svelte'; @@ -10,10 +11,9 @@ onMount(() => { const theme = - page.url.searchParams.get('theme') ?? - localStorage.getItem('mem.estrogen.zone:blog:theme'); + page.url.searchParams.get('theme') ?? blogStorage.getItem('theme'); if (theme) { - localStorage.setItem('mem.estrogen.zone:blog:theme', theme); + blogStorage.setItem('theme', theme); document.documentElement.setAttribute('data-blog-theme', theme); page.url.searchParams.delete('theme'); } |