digitalmarketplace-frontend
Version:
Digital Marketplace Frontend contains assets and components used in Digital Marketplace projects
61 lines (58 loc) • 2.45 kB
JavaScript
import { setCookiePreferences, getCookiePreferences } from '../../scripts/cookies/manage.mjs';
class CookieBanner {
static moduleName = 'dm-cookie-banner';
$module;
$cookieBannerMainContent;
$cookieBannerConfirmationContent;
$cookieBannerConfirmationMessage;
$hideLink;
$acceptCookiesLink;
$rejectCookiesLink;
constructor($module) {
this.$module = $module;
this.$cookieBannerMainContent = this.$module.find('.dm-cookie-banner__button--main');
this.$cookieBannerConfirmationContent = this.$module.find('.dm-cookie-banner--selection-made');
this.$cookieBannerConfirmationMessage = this.$module.find('.dm-cookie-banner__confirmation-message');
this.$hideLink = this.$module.find('button[data-hide-cookie-banner]');
this.$acceptCookiesLink = this.$module.find('button[data-accept-cookies=true]');
this.$rejectCookiesLink = this.$module.find('button[data-accept-cookies=false]');
}
init() {
this.$hideLink.on('click', (event) => {
this.hideCookieMessage(event);
});
this.$acceptCookiesLink.on('click', () => {
this.setCookieConsent(true);
});
this.$rejectCookiesLink.on('click', () => {
this.setCookieConsent(false);
});
this.showCookieMessage();
}
setCookieConsent(analyticsConsent) {
setCookiePreferences(analyticsConsent);
this.showConfirmationMessage(analyticsConsent);
this.$cookieBannerConfirmationContent.trigger('focus');
}
showCookieMessage() {
// Show the cookie banner if policy cookie not set
const cookiePreferences = getCookiePreferences();
if (this.$module && !cookiePreferences.settings_viewed) {
this.$module.css('display', 'block');
}
}
hideCookieMessage(event) {
this.$module.css('display', 'none');
if (event.target) {
event.preventDefault();
}
}
showConfirmationMessage(analyticsConsent) {
const messagePrefix = analyticsConsent ? 'You’ve accepted analytics cookies.' : 'You told us not to use analytics cookies.';
this.$cookieBannerMainContent.attr('hidden', 'hidden');
this.$cookieBannerConfirmationMessage.prepend(messagePrefix);
this.$cookieBannerConfirmationContent.removeAttr('hidden');
}
}
export { CookieBanner };
//# sourceMappingURL=cookie-banner.mjs.map