43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
/*===============================================
|
|
Cookie Consent
|
|
===============================================*/
|
|
const cookieStorage = {
|
|
getItem: (key) => {
|
|
const cookies = document.cookie
|
|
.split(';')
|
|
.map(cookie => cookie.split('='))
|
|
.reduce((acc, [key, value]) => ({ ...acc, [key.trim()]: value }), {});
|
|
return cookies[key];
|
|
},
|
|
setItem: (key, value) => {
|
|
document.cookie = `${key}=${value}`;
|
|
},
|
|
};
|
|
const storageType = cookieStorage;
|
|
const consentName = 'cookie_consent';
|
|
const ShowConsent = () => !storageType.getItem(consentName);
|
|
|
|
window.onload = () => {
|
|
const consentPopup = document.getElementById('cookie-consent');
|
|
const acceptBtn = document.getElementById('accept-consent');
|
|
|
|
const acceptFn = event => {
|
|
date = new Date();
|
|
date.setTime(date.getTime()+(1000*60*60*24*30)); /* 30 days */
|
|
expires = date.toGMTString();
|
|
|
|
document.cookie = consentName+"=accepted; expires="+expires+"; path=/";
|
|
|
|
consentPopup.classList.add('consent-hidden');
|
|
|
|
event.preventDefault();
|
|
}
|
|
|
|
acceptBtn.addEventListener('click', acceptFn);
|
|
|
|
if (ShowConsent(storageType)) {
|
|
setTimeout(() => {
|
|
consentPopup.classList.remove('consent-hidden');
|
|
}, 2000); /* 2 seconds */
|
|
}
|
|
}; |