You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
5.2 KiB
JavaScript

document.addEventListener('DOMContentLoaded', function () {
const fixedSideHeader = document.getElementById('fixedSideHeader');
const scrollPart = document.getElementById('scrollPart');
const burgerMenuButton = document.getElementById('burgerMenuButton');
const burgerMenuLines = document.querySelectorAll('.burgerMenuLine');
function toggleSideHeader() {
const computedStyle = getComputedStyle(fixedSideHeader);
const isHidden = computedStyle.display === 'none';
if (isHidden) {
fixedSideHeader.style.display = 'block';
burgerMenuButton.classList.add('flex-col');
burgerMenuButton.classList.remove('flex-row');
burgerMenuLines.forEach((line) => {
line.classList.remove('expanded');
});
scrollPart.classList.remove('w-full');
scrollPart.classList.add('flex-1');
scrollPart.classList.add('ml-[300px]');
} else {
fixedSideHeader.style.display = 'none';
burgerMenuButton.classList.remove('flex-col');
burgerMenuButton.classList.add('flex-row');
burgerMenuLines.forEach((line) => {
line.classList.add('expanded');
});
scrollPart.classList.remove('flex-1');
scrollPart.classList.remove('ml-[300px]');
scrollPart.classList.add('w-full');
}
}
burgerMenuButton.addEventListener('click', toggleSideHeader);
// TO DISPLAY THE USER PROFILE DROPDOWN ON DESKTOP
var userProfile = document.getElementById("userProfile");
var userProfileDropdown = document.getElementById("userProfileDropdown");
var arrowDown = document.getElementById("arrowDown");
var arrowUp = document.getElementById("arrowUp");
userProfile.addEventListener("click", function (event) {
event.stopPropagation(); // Prevents the event from bubbling up to the document
if (userProfileDropdown.style.display == "none") {
userProfileDropdown.style.display = "block";
arrowDown.style.display = "none";
arrowUp.style.display = "block";
} else {
userProfileDropdown.style.display = "none";
arrowDown.style.display = "block";
arrowUp.style.display = "none";
}
});
// Add event listener to hide dropdown when clicking outside of it
document.addEventListener("click", function (event) {
if (!userProfile.contains(event.target) && !userProfileDropdown.contains(event.target)) {
userProfileDropdown.style.display = "none";
arrowDown.style.display = "block";
arrowUp.style.display = "none";
}
});
// TO DISPLAY THE USER PROFILE DROPDOWN ON MOBILE
const mobileUserProfile = document.getElementById('mobileUserProfile');
var dropdown = document.getElementById('mobileUserProfileDropdown');
var arrowDown = this.querySelector('.fa-angle-down');
var arrowUp = this.querySelector('.fa-angle-up');
mobileUserProfile.addEventListener('click', function () {
dropdown.classList.toggle('active');
arrowDown.style.display = arrowDown.style.display === 'none' ? 'inline' : 'none';
arrowUp.style.display = arrowUp.style.display === 'none' ? 'inline' : 'none';
});
});
// TO TOGGLE THGE SIDE BAR ON MOBILE
function toggleMobileSideBar() {
var burgerMenuButton = document.getElementById('mobileBurgerMenuButton');
var closeMenuButton = document.getElementById('mobileCloseMenuButton');
var sidebar = document.querySelector('.mobileFixedSideHeader');
var body = document.querySelector('body');
burgerMenuButton.classList.toggle('hidden');
closeMenuButton.classList.toggle('hidden');
sidebar.classList.toggle('hidden');
// PREVENT SCROLLING WHEN TEH SIDE BAR IS TOGGLED
if (body.style.overflow === 'hidden') {
body.style.overflow = '';
} else {
body.style.overflow = 'hidden';
}
}
document.getElementById('mobileBurgerMenuButton').addEventListener('click', toggleMobileSideBar);
document.getElementById('mobileCloseMenuButton').addEventListener('click', toggleMobileSideBar);
// SCRIPT FOR THE SIDEBAR MENU ITEMS
const menuContainers = document.querySelectorAll('.menu-container');
// Add click event listeners to each menu container
menuContainers.forEach((menuContainer) => {
const menuItem = menuContainer.querySelector('.menuItem');
const menuDropdownItems = menuContainer.querySelector('.menuDropdownItems');
const angleDown = menuItem.querySelector('.angleDown');
const angleUp = menuItem.querySelector('.angleUp');
menuItem.addEventListener('click', function () {
// Close all dropdowns first
document.querySelectorAll('.menuDropdownItems').forEach(item => {
if (item !== menuDropdownItems) {
item.classList.remove('active');
}
});
// Toggle active class for the clicked dropdown
menuDropdownItems.classList.toggle('active');
// Toggle angle icons
angleDown.style.display = angleDown.style.display === 'none' ? 'inline' : 'none';
angleUp.style.display = angleUp.style.display === 'none' ? 'inline' : 'none';
});
});