diff --git a/package.json b/package.json index 3b42c35..64643a7 100644 --- a/package.json +++ b/package.json @@ -32,5 +32,8 @@ "typescript": "^5.4.5", "vite": "^5.2.11" }, - "type": "module" + "type": "module", + "dependencies": { + "svelte-persisted-store": "^0.9.4" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6f979b..cdc0f6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,10 @@ settings: importers: .: + dependencies: + svelte-persisted-store: + specifier: ^0.9.4 + version: 0.9.4(svelte@4.2.15) devDependencies: '@sveltejs/adapter-auto': specifier: ^3.2.0 @@ -1257,6 +1261,12 @@ packages: peerDependencies: svelte: ^3.19.0 || ^4.0.0 + svelte-persisted-store@0.9.4: + resolution: {integrity: sha512-Em3cDSsd3fAkQhvNc4+V7ZT86GnIkFrlcKK/oNSHFhF5fbNoavdxvtTZ0pCF2ueG/Oqg5kSbAFxn0rkeICpHUA==} + engines: {node: '>=0.14'} + peerDependencies: + svelte: ^3.48.0 || ^4.0.0 || ^5.0.0-next.0 + svelte-preprocess@5.1.4: resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} engines: {node: '>= 16.0.0'} @@ -2543,6 +2553,10 @@ snapshots: dependencies: svelte: 4.2.15 + svelte-persisted-store@0.9.4(svelte@4.2.15): + dependencies: + svelte: 4.2.15 + svelte-preprocess@5.1.4(postcss-load-config@4.0.2(postcss@8.4.38))(postcss@8.4.38)(svelte@4.2.15)(typescript@5.4.5): dependencies: '@types/pug': 2.0.10 diff --git a/src/components/Banner.svelte b/src/components/Banner.svelte new file mode 100644 index 0000000..956f90b --- /dev/null +++ b/src/components/Banner.svelte @@ -0,0 +1,65 @@ + + + diff --git a/src/data/bannerStore.ts b/src/data/bannerStore.ts new file mode 100644 index 0000000..e9e03e8 --- /dev/null +++ b/src/data/bannerStore.ts @@ -0,0 +1,9 @@ +import { persisted } from "svelte-persisted-store"; + +// Save if the banner is hidden to sessionstorage +export const bannerShownSessionStore = persisted("bannerShown", "yes", { + storage: "session" +}); + +// Save a count of how many times the banner has been hidden to local storage +export const bannerHiddenCountStore = persisted("bannerHiddenCount", "0"); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 4d96b55..f9c934c 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,11 +1,27 @@ +
+ +