45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
"use client";
|
|
import React, { useLayoutEffect, useState } from 'react';
|
|
|
|
export default function AcceptCookies() {
|
|
// Safe cookie getter
|
|
function getCookie(name) {
|
|
if (typeof document === 'undefined') return null; // SSR safety
|
|
const value = `; ${document.cookie}`;
|
|
const parts = value.split(`; ${name}=`);
|
|
if (parts.length === 2) return parts.pop().split(';').shift();
|
|
return null;
|
|
}
|
|
|
|
const [cookies, setCookies] = useState(true); // Start as true
|
|
|
|
const acceptCookies = () => {
|
|
document.cookie = `use_cookies=${encodeURIComponent('true')}; path=/; max-age=31536000`; // 1 year
|
|
setCookies(true);
|
|
};
|
|
|
|
useLayoutEffect(()=>{
|
|
const useCookies = getCookie('use_cookies');
|
|
if (useCookies && decodeURIComponent(useCookies) === 'true') {
|
|
setCookies(true);
|
|
}else{
|
|
setCookies(false)
|
|
}
|
|
},[])
|
|
|
|
return (
|
|
<>
|
|
{cookies ? <></> : (
|
|
<div className={`${cookies ? 'slide-down' : 'slide-up'} cookies-wrapper position-fixed d-lg-flex justify-content-center align-items-center gap-5 p-2`}>
|
|
<p className="m-0">
|
|
This website uses cookies to provide you the best experience possible, as well as for tracking performance and marketing purposes. You can check our privacy policy for more information. By clicking ❛❛Confirm❜❜ or by continuing to use our website, you consent to our use of cookies.
|
|
</p>
|
|
<button onClick={acceptCookies} className="px-5 py-2">
|
|
Accept
|
|
</button>
|
|
</div>
|
|
)}
|
|
</>
|
|
);
|
|
}
|