From 7392b61e3e70534bdab078a64e7a7f51b6f84150 Mon Sep 17 00:00:00 2001 From: bytedream Date: Sat, 26 Aug 2023 13:45:33 +0200 Subject: [PATCH] add easter egg and settings menu --- package-lock.json | 13 ++++++++++++ package.json | 1 + src/lib/stores.ts | 7 +++---- src/routes/+layout.svelte | 30 ++++++++++++++++++++++++-- src/routes/Settings.svelte | 42 +++++++++++++++++++++++++++++++++++++ static/aud/chest-close.mp3 | Bin 0 -> 11268 bytes static/aud/chest-open.mp3 | Bin 0 -> 13201 bytes 7 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 src/routes/Settings.svelte create mode 100644 static/aud/chest-close.mp3 create mode 100644 static/aud/chest-open.mp3 diff --git a/package-lock.json b/package-lock.json index ba5d22a..5d8cf8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "svelte": "^4.0.5", "svelte-check": "^3.4.3", "svelte-heros-v2": "^0.9.3", + "svelte-local-storage-store": "^0.6.0", "svelte-multicssclass": "^2.1.1", "tailwindcss": "^3.3.3", "tslib": "^2.4.1", @@ -4871,6 +4872,18 @@ "svelte": "^3.19.0 || ^4.0.0-next.0" } }, + "node_modules/svelte-local-storage-store": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.6.0.tgz", + "integrity": "sha512-UbCY/yT/YUadU5IX/gZkoRQnA+ebFZHKKQjlJvfWHnBj3CPe9sNn8ndxYz/xy4LUzGjuBLq8+wH5RYK54ba3wA==", + "dev": true, + "engines": { + "node": ">=0.14" + }, + "peerDependencies": { + "svelte": "^3.48.0 || ^4.0.0" + } + }, "node_modules/svelte-multicssclass": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/svelte-multicssclass/-/svelte-multicssclass-2.1.1.tgz", diff --git a/package.json b/package.json index faaaf7a..2c14343 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "svelte": "^4.0.5", "svelte-check": "^3.4.3", "svelte-heros-v2": "^0.9.3", + "svelte-local-storage-store": "^0.6.0", "svelte-multicssclass": "^2.1.1", "tailwindcss": "^3.3.3", "tslib": "^2.4.1", diff --git a/src/lib/stores.ts b/src/lib/stores.ts index bcfcad4..55eba30 100644 --- a/src/lib/stores.ts +++ b/src/lib/stores.ts @@ -1,5 +1,4 @@ -import { type Writable, writable } from 'svelte/store'; +import { persisted } from 'svelte-local-storage-store'; +import type { Writable } from 'svelte/store'; -export const registered: Writable<{ - username: string; -} | null> = writable(null); +export const playAudio: Writable = persisted('playAudio', false); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 16a112d..5fa8163 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -2,6 +2,8 @@ import '../app.css'; import { env } from '$env/dynamic/public'; import { goto } from '$app/navigation'; + import Settings from './Settings.svelte'; + import { playAudio } from '$lib/stores'; let navPaths = [ { @@ -56,9 +58,20 @@ let isTouch = false; let nav: HTMLDivElement; + let settings: HTMLDialogElement; { + if (e.key === 'Escape') { + e.preventDefault(); + if (settings.open) { + settings.close(); + } else { + settings.show(); + } + } + }} on:touchend={(e) => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore @@ -83,9 +96,12 @@ let activePath = navPaths.find((path) => path.active); if (activePath !== undefined) { goto(activePath.href); - } else { - showMenuPermanent = !showMenuPermanent; + } else if ($playAudio) { + new Audio( + `${env.PUBLIC_BASE_PATH}/aud/chest-${showMenuPermanent ? 'close' : 'open'}.mp3` + ).play(); } + showMenuPermanent = !showMenuPermanent; } }} on:touchend={() => { @@ -147,3 +163,13 @@ + + + diff --git a/src/routes/Settings.svelte b/src/routes/Settings.svelte new file mode 100644 index 0000000..59262d2 --- /dev/null +++ b/src/routes/Settings.svelte @@ -0,0 +1,42 @@ + + +
+

Einstellungen

+
+
+
+ {#each settings as setting} +
+

{setting.name}

+ + + +
+ { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + setting.store.set(e.target.checked); + }} + /> + {/each} +
+
+
+
diff --git a/static/aud/chest-close.mp3 b/static/aud/chest-close.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..01ab2590928d2a1c34ee0f860e9034801891eb5e GIT binary patch literal 11268 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 Xn*Uik<+z4{1ArI?=Q;jQr1ReZBBI6d literal 0 HcmV?d00001