Skip to content
Snippets Groups Projects

Resolve "cookie policy acceptance for matomo must expire after 1 year"

2 files
+ 21
1
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -16,6 +16,7 @@ import { injectMatomoTracking } from '@/utils/injectMatomoTracking';
import {
USER_ACCEPTED_COOKIES_COOKIE_NAME,
USER_ACCEPTED_COOKIES_COOKIE_VALUE,
USER_ACCEPTED_COOKIES_DATE,
USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME,
} from './CookieBanner.constants';
@@ -33,11 +34,28 @@ export const CookieBanner = (): React.ReactNode => {
const [options, setOptions] = useState([selectMatomoOption]);
useEffect(() => {
const isAccepted =
const userAcceptedCookieDate = localStorage.getItem(USER_ACCEPTED_COOKIES_DATE);
let isAccepted =
localStorage.getItem(USER_ACCEPTED_COOKIES_COOKIE_NAME) ===
USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED &&
localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== null &&
localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== undefined;
if (!userAcceptedCookieDate) {
isAccepted = false;
} else {
const whenAccepted = Date.parse(userAcceptedCookieDate);
const now = Date.now();
// eslint-disable-next-line no-magic-numbers
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((now - whenAccepted) / oneDay));
// eslint-disable-next-line no-magic-numbers
if (diffDays > 365) {
isAccepted = false;
}
}
if (isAccepted) {
dispatch(acceptCookies());
} else {
@@ -51,6 +69,7 @@ export const CookieBanner = (): React.ReactNode => {
USER_ACCEPTED_COOKIES_COOKIE_NAME,
USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED,
);
localStorage.setItem(USER_ACCEPTED_COOKIES_DATE, new Date().toISOString().split('T')[ZERO]);
if (options.length > ZERO) {
localStorage.setItem(
USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME,
Loading