Agrovision / static /js /menu.js
qwfjgp2's picture
Upload 46 files
7249792 verified
Raw
History Blame Contribute Delete
2.86 kB
function toggleMobileMenu() {
const mobileMenu = document.getElementById('mobile-menu');
const menuIcon = document.getElementById('menu-icon');
const closeIcon = document.getElementById('close-icon');
if (mobileMenu) {
mobileMenu.classList.toggle('hidden');
if (menuIcon && closeIcon) {
menuIcon.classList.toggle('hidden');
closeIcon.classList.toggle('hidden');
}
}
}
function closeMobileMenu() {
const mobileMenu = document.getElementById('mobile-menu');
const menuIcon = document.getElementById('menu-icon');
const closeIcon = document.getElementById('close-icon');
if (mobileMenu) {
mobileMenu.classList.add('hidden');
if (menuIcon && closeIcon) {
menuIcon.classList.remove('hidden');
closeIcon.classList.add('hidden');
}
}
}
function toggleMobileLanguageMenu() {
const menu = document.getElementById('mobile-lang-menu');
if (menu) {
menu.classList.toggle('hidden');
}
}
function initMenuEvents() {
document.addEventListener('click', (event) => {
const mobileMenu = document.getElementById('mobile-menu');
const mobileMenuBtn = document.getElementById('mobile-menu-btn');
const mobileLangMenu = document.getElementById('mobile-lang-menu');
const mobileLangBtn = document.getElementById('mobile-lang-switcher');
if (mobileMenu && !mobileMenu.contains(event.target) && !mobileMenuBtn?.contains(event.target)) {
if (!mobileMenu.classList.contains('hidden')) {
closeMobileMenu();
}
}
if (mobileLangMenu && !mobileLangMenu.contains(event.target) && !mobileLangBtn?.contains(event.target)) {
if (!mobileLangMenu.classList.contains('hidden')) {
mobileLangMenu.classList.add('hidden');
}
}
});
document.addEventListener('click', (e) => {
const langSwitcher = document.getElementById('lang-switcher');
const langMenu = document.getElementById('lang-menu');
if (langSwitcher && langMenu && !langSwitcher.contains(e.target) && !langMenu.contains(e.target)) {
langMenu.classList.add('hidden');
}
const accountBtn = document.getElementById('sign-in-btn');
const accountMenu = document.getElementById('account-menu');
if (accountBtn && accountMenu && !accountBtn.contains(e.target) && !accountMenu.contains(e.target)) {
accountMenu.classList.add('hidden');
}
const mobileAccountBtn = document.getElementById('mobile-sign-in-btn');
const mobileAccountMenu = document.getElementById('mobile-account-menu');
if (mobileAccountBtn && mobileAccountMenu && !mobileAccountBtn.contains(e.target) && !mobileAccountMenu.contains(e.target)) {
mobileAccountMenu.classList.add('hidden');
}
});
}
export { toggleMobileMenu, closeMobileMenu, toggleMobileLanguageMenu, initMenuEvents };