From c78406fc80b22ba887f44745f0bf48c64d41834a Mon Sep 17 00:00:00 2001 From: Chai Landau <112015853+chailandau@users.noreply.github.com> Date: Thu, 30 Nov 2023 13:57:06 -0500 Subject: [PATCH] feat: Cookie banner / consent (#100) * feat: add CookieBanner component * chore: add js-cookie package * feat: add darkBlue shadow mixin * feat: add cookie consent banner * refactor: put GA in separate component, only use if cookies accepted * refactor: setNoScroll affects html el instead of body * feat: add focus trap --- app/layout.tsx | 23 +--- package.json | 2 + .../CookieBanner/CookieBanner.module.scss | 67 ++++++++++ src/components/CookieBanner/CookieBanner.tsx | 124 ++++++++++++++++++ src/components/CookieBanner/GoogleScript.tsx | 43 ++++++ src/components/CookieBanner/index.ts | 3 + src/store/createCookieBannerSlice.ts | 15 +++ src/store/useStore.ts | 9 +- src/styles/_variables.scss | 3 +- src/utils/setNoScroll.ts | 4 +- yarn.lock | 10 ++ 11 files changed, 279 insertions(+), 24 deletions(-) create mode 100644 src/components/CookieBanner/CookieBanner.module.scss create mode 100644 src/components/CookieBanner/CookieBanner.tsx create mode 100644 src/components/CookieBanner/GoogleScript.tsx create mode 100644 src/components/CookieBanner/index.ts create mode 100644 src/store/createCookieBannerSlice.ts diff --git a/app/layout.tsx b/app/layout.tsx index 41765ad..e255534 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,12 +1,12 @@ import { Metadata } from 'next'; -import Script from 'next/script'; import { FOOTER_QUERY, HEADER_QUERY } from '@/api/graphqlQueries'; +import CookieBanner from '@/components/CookieBanner'; +import GoogleScript from '@/components/CookieBanner/GoogleScript'; import Footer from '@/components/Footer'; import Header from '@/components/Header/Header'; import BackToTop from '@/molecules/BackToTop'; import { getData } from '@/utils/getData'; - import '@/assets/fonts/fonts.css'; import '@/styles/main.scss'; @@ -24,24 +24,9 @@ export default async function RootLayout({ return ( -