From 8b86350a2de571820e50dced83096d8ab0d6b98c Mon Sep 17 00:00:00 2001 From: stefanomanca Date: Wed, 6 May 2026 11:56:05 +0200 Subject: [PATCH] feat: implement cookie consent popup and related functionality --- src/App.svelte | 9 +- src/components/Button/Button.css | 2 + src/components/Button/Button.svelte | 19 ++- src/components/CookiePopUp/CookiePopUp.css | 140 ++++++++++++++++ src/components/CookiePopUp/CookiePopUp.svelte | 153 ++++++++++++++++++ src/components/CookiePopUp/assets/cookie.svg | 4 + src/components/Toggle/Toggle.css | 98 +++++++++++ src/components/Toggle/Toggle.svelte | 74 +++++++++ src/lib/cookieConsent.js | 103 ++++++++++++ src/styles/global.css | 22 ++- 10 files changed, 613 insertions(+), 11 deletions(-) create mode 100644 src/components/CookiePopUp/CookiePopUp.css create mode 100644 src/components/CookiePopUp/CookiePopUp.svelte create mode 100644 src/components/CookiePopUp/assets/cookie.svg create mode 100644 src/components/Toggle/Toggle.css create mode 100644 src/components/Toggle/Toggle.svelte create mode 100644 src/lib/cookieConsent.js diff --git a/src/App.svelte b/src/App.svelte index 8cfb4d9..f74e6db 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -4,11 +4,13 @@ import Services from "./components/Services/Services.svelte"; import Footer from "./components/Footer/Footer.svelte"; import Header from "./components/Header/Header.svelte"; + import CookiePopUp from "./components/CookiePopUp/CookiePopUp.svelte"; import Contacts from "./pages/Contacts.svelte"; import Forbidden from "./pages/403.svelte"; import ServerError from "./pages/500.svelte"; import ErrorGeneric from "./pages/errore.svelte"; import NotFound from "./pages/404.svelte"; + import { initializeStoredConsent } from "./lib/cookieConsent"; let pathname = '/' @@ -31,10 +33,12 @@ return '404' } - $: currentRoute = getRoute(pathname) - $: isCenteredMain = ['403', '404', '500', 'error'].includes(currentRoute) + let currentRoute = $derived(getRoute(pathname)) + let isCenteredMain = $derived(['403', '404', '500', 'error'].includes(currentRoute)) onMount(() => { + initializeStoredConsent() + try { const saved = localStorage.getItem('theme') if (saved) { @@ -79,4 +83,5 @@ {/if}