// JS Menu
(function () {
- let button = $('.js-menu');
- let menu = $('.l-navigation');
- let menuLinks = menu.find('a');
-
- button.on('click', function() {
- if(!$(this).hasClass('is-active')) {
- $(this).addClass('is-active');
- menu.addClass('is-open');
- $('body').addClass('is-open');
- button.find('.bar').addClass('animate');
- menuLinks.attr('tabindex', 0);
- } else {
- $(this).removeClass('is-active');
- menu.removeClass('is-open');
- $('body').removeClass('is-open');
- button.find('.bar').removeClass('animate');
- menuLinks.attr('tabindex', -1);
- }
- });
-
- $(document).keyup(function(e) {
- if (e.keyCode === 27) {
- button.removeClass('is-active');
- menu.removeClass('is-open');
- $('body').removeClass('is-open');
- button.find('.bar').removeClass('animate');
- menuLinks.attr('tabindex', -1);
+ const dialog = document.getElementById('main-menu');
+ let buttonOn = $('.js-menu');
+ let buttonOff = $('.js-menu-close');
+
+ async function closeMenu() {
+ // Może być od razu dialog.close bez is-closing, gdy przeglądarki nadrobią
+ // https://caniuse.com/wf-display-animation, https://caniuse.com/wf-overlay
+ if (!dialog.open || dialog.classList.contains('is-closing')) return;
+ dialog.classList.add('is-closing');
+ buttonOn.find('.bar').removeClass('animate');
+ buttonOff.find('.bar').removeClass('animate');
+ await Promise.allSettled(dialog.getAnimations().map(a => a.finished));
+ dialog.close();
}
- });
-})();
+ dialog.addEventListener('close', () => {
+ dialog.classList.remove('is-closing');
+ });
-// User menu.
-(function() {
- let button = $('.l-navigation__actions .user');
- let menu = $('#user-menu');
- let menuLinks = menu.find('a');
-
- button.on('click', function() {
- if (!menu.hasClass('is-open')) {
- menu.addClass('is-open');
- menuLinks.attr('tabindex', 0);
- } else {
- menu.removeClass('is-open');
- menuLinks.attr('tabindex', -1)
- }
- return false;
+ document.querySelector('.js-menu').addEventListener('click', () => {
+ dialog.showModal();
+ buttonOn.find('.bar').addClass('animate');
+ buttonOff.find('.bar').addClass('animate');
});
- $(document).keyup(function(e) {
- if (e.keyCode === 27) {
- menu.removeClass('is-open');
- menuLinks.attr('tabindex', -1);
- }
+ dialog.querySelector('.js-menu-close').addEventListener('click', closeMenu);
+ dialog.addEventListener('cancel', e => {
+ e.preventDefault();
+ closeMenu();
});
+})();
+
- $(document).click(function() {
- menu.removeClass('is-open');
- menuLinks.attr('tabindex', -1);
+// Ebook/Audiobook Btns
+(function() {
+ let dialogs = $(".l-button--dialog");
+ dialogs.on('click', function () {
+ let target = $(this).attr('id');
+ $('[data-popup=' + target)[0].showModal();
});
+ $('.c-media__popup__close').on('click', function() {
+ $(this).closest('dialog')[0].close();
+ });
})();
-// Ebook/Audiobook Btns
+
+// Player
(function() {
- let button = $('.c-media__btn button:not(.l-button--media--full)');
- let popupLayer = $('.c-media__popup');
- let closeButton = $('.c-media__popup__close');
let playButton = $('.c-player__btn--md');
let chaptersButton = $('.c-player__chapters span');
let select = $('.c-select');
let selectItem = $('.c-select li');
let volumeButton = $('.icon-volume');
- button.on('click', function () {
- let target = $(this).attr('id');
- $('[data-popup=' + target).addClass('is-open');
- $('body').addClass('popup-open');
- });
-
- closeButton.on('click', function() {
- $(this).closest('.c-media__popup').removeClass('is-open');
- $('body').removeClass('popup-open');
- });
-
- popupLayer.on('click', function(e) {
- let _this = $(this);
- if($(e.target).is(popupLayer)) {
- _this.removeClass('is-open');
- $('body').removeClass('popup-open');
- }
- });
-
chaptersButton.on('click', function() {
$(this).parent().toggleClass('is-active');
});
selectItem.removeClass('is-active');
$(this).addClass('is-active');
});
-
- $(document).keyup(function(e) {
- if (e.keyCode === 27) {
- $('.c-media__popup').removeClass('is-open');
- }
- });
})();
// Homepage books sliders
updateLiked($btn);
},
error: function() {
- window.location.href = $('#login-link').attr('href');
+ window.location.href = $('.login-link').attr('href');
}
})
} else {
updateLiked($btn);
},
error: function() {
- window.location.href = $('#login-link').attr('href')
+ window.location.href = $('.login-link').attr('href')
}
});
}
window.location.reload(true);
});
- $('.c-lang').on('click', function() {
- !$(this).toggleClass('is-open');
- });
-
-
-
-
$(".c-media__settings > i").on('click', function() {
$(".c-media__settings").toggleClass('active');
});
$(".annoy-banner-clickable").each(function() {
- $(this).click(() => {
- $("a.action", this).click();
+ let btn = $("a.action", this)[0];
+ $(this).click((e) => {
+ if (e.target !== btn) {
+ btn.click();
+ }
});
});