From 1c36c2112333434dede9f2dfca6ba522c0d3858f Mon Sep 17 00:00:00 2001 From: lareii Date: Sun, 15 Sep 2024 14:30:51 +0300 Subject: [PATCH] feat(client): add cookie banner --- client/app/(home)/(legal)/privacy/page.jsx | 9 +++---- client/app/layout.jsx | 2 ++ client/components/app/Cookie/index.jsx | 29 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 client/components/app/Cookie/index.jsx diff --git a/client/app/(home)/(legal)/privacy/page.jsx b/client/app/(home)/(legal)/privacy/page.jsx index c6b68b1..a6b2af9 100644 --- a/client/app/(home)/(legal)/privacy/page.jsx +++ b/client/app/(home)/(legal)/privacy/page.jsx @@ -44,11 +44,10 @@ export default function Page() {
3. Çerezler
- Hizmetimizde kullanıcı deneyimini geliştirmek ve oturum yönetimini - sağlamak amacıyla çerezler kullanıyoruz. Çerezler, tarayıcınızda - saklanan küçük veri dosyalarıdır. Tarayıcı ayarlarınızdan çerez - kullanımını yönetebilir veya devre dışı bırakabilirsiniz; ancak bu, - hizmetin bazı özelliklerini sınırlayabilir. + Çerezler, tarayıcınızda saklanan küçük veri dosyalarıdır. Hizmetimizde + kullanıcı deneyimini geliştirmek ve oturum yönetimini sağlamak + amacıyla çerezler kullanıyoruz. Çerezleri kabul etmek istemiyorsanız, + siteyi kullanmaya devam etmemelisiniz.
diff --git a/client/app/layout.jsx b/client/app/layout.jsx index 3b4874a..6ec0219 100644 --- a/client/app/layout.jsx +++ b/client/app/layout.jsx @@ -1,5 +1,6 @@ import { Inter } from 'next/font/google'; import { Toaster } from '@/components/ui/toaster'; +import Cookie from '@/components/app/Cookie'; import '@/styles/main.css'; const inter = Inter({ subsets: ['latin'] }); @@ -19,6 +20,7 @@ export default function RootLayout({ children }) { {children} + ); diff --git a/client/components/app/Cookie/index.jsx b/client/components/app/Cookie/index.jsx new file mode 100644 index 0000000..60fdd5e --- /dev/null +++ b/client/components/app/Cookie/index.jsx @@ -0,0 +1,29 @@ +'use client'; + +import { useEffect, useState } from 'react'; +import { useLocalStorage } from 'react-use'; +import { Button } from '@/components/ui/button'; + +export default function CookieBanner() { + const [hasAcceptedCookies, setHasAcceptedCookies] = useLocalStorage( + 'hasAcceptedCookies', + false + ); + const [isCookieBannerVisible, setIsCookieBannerVisible] = useState(false); + + useEffect(() => { + if (!hasAcceptedCookies) setIsCookieBannerVisible(true); + else setIsCookieBannerVisible(false); + }, [hasAcceptedCookies]); + + return ( + isCookieBannerVisible && ( +
+ 🍪 bu site çerezleri kullanır, devam ederek bunu kabul etmiş olursunuz. + +
+ ) + ); +}