main/app/assets/js/scripts.js
Renan Bernordi 90bcbd97fd desk
2025-01-28 00:10:23 -03:00

67 lines
No EOL
2.1 KiB
JavaScript

/**
* Service Worker registration for PWA functionality
* Registers a service worker to enable offline capabilities and PWA features
*/
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(() => {
// Service Worker registered successfully
})
.catch(() => {
// Service Worker registration failed
});
});
}
/**
* Header toggle menus
*/
document.addEventListener('DOMContentLoaded', function () {
const integration = document.querySelector('.integration');
const integrationToggle = document.querySelector('.integration__toggle');
const extension = document.querySelector('.extension');
const extensionToggle = document.querySelector('.extension__toggle');
// Function to close all menus
const closeAllMenus = () => {
integration.classList.remove('open');
extension.classList.remove('open');
};
// Function to close other menus except the one passed
const closeOtherMenus = (exceptMenu) => {
if (exceptMenu !== integration) {
integration.classList.remove('open');
}
if (exceptMenu !== extension) {
extension.classList.remove('open');
}
};
integrationToggle.addEventListener('click', (e) => {
e.stopPropagation(); // Prevent click from bubbling to document
closeOtherMenus(integration);
integration.classList.toggle('open');
});
extensionToggle.addEventListener('click', (e) => {
e.stopPropagation(); // Prevent click from bubbling to document
closeOtherMenus(extension);
extension.classList.toggle('open');
});
// Prevent clicks inside menus from closing them
integration.addEventListener('click', (e) => {
e.stopPropagation();
});
extension.addEventListener('click', (e) => {
e.stopPropagation();
});
// Close menus when clicking outside
document.addEventListener('click', () => {
closeAllMenus();
});
});