From 03b6a9a0a7de52e9695c9e9b21a96c9a163a0047 Mon Sep 17 00:00:00 2001 From: GauthierWebDev Date: Fri, 18 Apr 2025 15:18:07 +0200 Subject: [PATCH] feat: Add function to update all consent cookies --- app/layouts/LayoutDefault.telefunc.ts | 15 ++++++++++++--- app/layouts/LayoutDefault.tsx | 25 +++++++++++++++++++++---- app/server/vike-handler.ts | 4 ++-- app/services/CookieParser.ts | 10 +++++----- 4 files changed, 40 insertions(+), 14 deletions(-) diff --git a/app/layouts/LayoutDefault.telefunc.ts b/app/layouts/LayoutDefault.telefunc.ts index ba55b90..9d6ad12 100644 --- a/app/layouts/LayoutDefault.telefunc.ts +++ b/app/layouts/LayoutDefault.telefunc.ts @@ -7,10 +7,19 @@ type ConsentCookies = keyof PageContext["cookies"]["consent"]; export async function onUpdateConsentCookie(cookieName: ConsentCookies, cookieValue: boolean) { const context = getTelefuncContext(); - console.log(`Updating cookie ${cookieName} to ${cookieValue}`); - const { reply } = context; + CookieParser.set(reply, cookieName, cookieValue.toString(), 365); - return { ok: true, message: "Updated consent cookie" }; + return { ok: true, message: "Updated consent cookie", cookieName, cookieValue }; +} + +export async function onAcceptAllConsentCookie() { + const context = getTelefuncContext(); + const { reply } = context; + + CookieParser.set(reply, "analytics", "true", 365); + CookieParser.set(reply, "customization", "true", 365); + + return { ok: true, message: "Updated consents cookies" }; } diff --git a/app/layouts/LayoutDefault.tsx b/app/layouts/LayoutDefault.tsx index d556a1e..3e97367 100644 --- a/app/layouts/LayoutDefault.tsx +++ b/app/layouts/LayoutDefault.tsx @@ -1,4 +1,4 @@ -import { onUpdateConsentCookie } from "./LayoutDefault.telefunc"; +import { onUpdateConsentCookie, onAcceptAllConsentCookie } from "./LayoutDefault.telefunc"; import { MobileNavigation } from "@syntax/MobileNavigation"; import { usePageContext } from "vike-react/usePageContext"; import { ThemeProvider } from "@/providers/ThemeProvider"; @@ -133,7 +133,10 @@ function CookieModal() { success: "Cookies mis à jour !", error: "Erreur lors de la mise à jour des cookies.", }) - .finally(reload); + .then((data) => { + setConsentCookies({ ...consentCookies, [data.cookieName]: data.cookieValue }); + reload(); + }); }} /> @@ -142,6 +145,8 @@ function CookieModal() { ); } + if (!isOpen) return null; + return (