From 8548d36cdac28dc25b1404f16aeeced86d75dc64 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Wed, 20 Aug 2025 10:40:35 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20(landing-page)=20Fix=20first-tim?= =?UTF-8?q?e=20cookie=20setter=20for=20non=20EU=20users?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/landing-page/src/helpers/setCookie.ts | 7 +++++++ apps/landing-page/src/hooks/useIsCookieConsentNeeded.ts | 8 +++++++- apps/landing-page/src/routes/__root.tsx | 8 +------- 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 apps/landing-page/src/helpers/setCookie.ts diff --git a/apps/landing-page/src/helpers/setCookie.ts b/apps/landing-page/src/helpers/setCookie.ts new file mode 100644 index 000000000..de1bb21c5 --- /dev/null +++ b/apps/landing-page/src/helpers/setCookie.ts @@ -0,0 +1,7 @@ +import { serializeTypebotCookie } from "@typebot.io/telemetry/cookies/helpers"; + +export const setCookie = (consent: "declined" | "accepted") => { + document.cookie = serializeTypebotCookie({ + consent, + }); +}; diff --git a/apps/landing-page/src/hooks/useIsCookieConsentNeeded.ts b/apps/landing-page/src/hooks/useIsCookieConsentNeeded.ts index 7501efce7..87e96814f 100644 --- a/apps/landing-page/src/hooks/useIsCookieConsentNeeded.ts +++ b/apps/landing-page/src/hooks/useIsCookieConsentNeeded.ts @@ -1,4 +1,5 @@ import { isEU } from "@/features/telemetry/server/isEU"; +import { setCookie } from "@/helpers/setCookie"; import { getTypebotCookie } from "@typebot.io/telemetry/cookies/helpers"; import { useEffect, useState } from "react"; @@ -17,7 +18,12 @@ export const useCookieConsentStatus = () => { } isEU().then((response) => { - setCookieConsentStatus(response.isEU ? "need-consent" : "not-needed"); + if (response.isEU) { + setCookieConsentStatus("need-consent"); + } else { + setCookie("accepted"); + setCookieConsentStatus("not-needed"); + } }); }, []); diff --git a/apps/landing-page/src/routes/__root.tsx b/apps/landing-page/src/routes/__root.tsx index 1caee7317..a8095f524 100644 --- a/apps/landing-page/src/routes/__root.tsx +++ b/apps/landing-page/src/routes/__root.tsx @@ -3,6 +3,7 @@ import { CookieConsentBot } from "@/components/CookieConsentBot"; import { Header } from "@/components/Header"; import { NotFound } from "@/components/NotFound"; import { Footer } from "@/components/footer/Footer"; +import { setCookie } from "@/helpers/setCookie"; import { useCookieConsentStatus } from "@/hooks/useIsCookieConsentNeeded"; import { useTrackPageViewQuery } from "@/hooks/useTrackPageViewQuery"; import { @@ -12,7 +13,6 @@ import { createRootRoute, useNavigate, } from "@tanstack/react-router"; -import { serializeTypebotCookie } from "@typebot.io/telemetry/cookies/helpers"; import { z } from "@typebot.io/zod"; const HERO_ANIMATION_DELAY = 1800; @@ -102,9 +102,3 @@ function RootComponent() { ); } - -const setCookie = (consent: "declined" | "accepted") => { - document.cookie = serializeTypebotCookie({ - consent, - }); -};