From f4d25ee1275d4783933ec173a5bc60b99181d855 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 1 Apr 2024 17:33:05 -0700 Subject: feat(layout): announcement feature --- src/lib/Announcement.svelte | 33 +++++++++++++++++++++++++++++++++ src/routes/+layout.svelte | 3 +++ src/stores/announcementHash.ts | 12 ++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/lib/Announcement.svelte create mode 100644 src/stores/announcementHash.ts (limited to 'src') diff --git a/src/lib/Announcement.svelte b/src/lib/Announcement.svelte new file mode 100644 index 00000000..13e5622a --- /dev/null +++ b/src/lib/Announcement.svelte @@ -0,0 +1,33 @@ + + +{#if announcement && $announcementHash !== hash(announcement) && $announcementHash !== 0} + + {announcement} + +

+ + + +{/if} + + diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index d5409f9a..98544a75 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -25,6 +25,7 @@ import subtitles from '$lib/Data/Static/subtitles.json'; import settingsSyncPulled from '$stores/settingsSyncPulled'; import settingsSyncTimes from '$stores/settingsSyncTimes'; + import Announcement from '$lib/Announcement.svelte'; injectSpeedInsights(); @@ -117,6 +118,8 @@ + +

diff --git a/src/stores/announcementHash.ts b/src/stores/announcementHash.ts new file mode 100644 index 00000000..4a44d670 --- /dev/null +++ b/src/stores/announcementHash.ts @@ -0,0 +1,12 @@ +import { browser } from '$app/environment'; +import { writable } from 'svelte/store'; + +const announcementHash = writable( + browser ? parseInt(localStorage.getItem('announcementHash') || '1') : 0 +); + +announcementHash.subscribe((value) => { + if (browser) localStorage.setItem('announcementHash', value.toString()); +}); + +export default announcementHash; -- cgit v1.2.3