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, - }); -};