Files
DEMO-AGENT/static/js/app.js

60 lines
1.8 KiB
JavaScript

(function () {
var workspace = document.querySelector(".workspace");
var sidebarToggle = document.getElementById("sidebarToggle");
var mobileSidebarToggle = document.getElementById("mobileSidebarToggle");
var userMenu = document.getElementById("userMenu");
var userMenuTrigger = document.getElementById("userMenuTrigger");
if (!workspace) {
return;
}
function isMobile() {
return window.matchMedia("(max-width: 980px)").matches;
}
function toggleSidebar() {
var state = workspace.getAttribute("data-sidebar-state");
if (isMobile()) {
workspace.setAttribute("data-sidebar-state", state === "open" ? "closed" : "open");
return;
}
workspace.setAttribute("data-sidebar-state", state === "collapsed" ? "open" : "collapsed");
}
function syncSidebarState() {
if (isMobile()) {
if (workspace.getAttribute("data-sidebar-state") === "collapsed") {
workspace.setAttribute("data-sidebar-state", "closed");
}
} else if (workspace.getAttribute("data-sidebar-state") === "closed") {
workspace.setAttribute("data-sidebar-state", "open");
}
}
if (sidebarToggle) {
sidebarToggle.addEventListener("click", toggleSidebar);
}
if (mobileSidebarToggle) {
mobileSidebarToggle.addEventListener("click", toggleSidebar);
}
if (userMenu && userMenuTrigger) {
userMenuTrigger.addEventListener("click", function () {
var isOpen = userMenu.classList.toggle("open");
userMenuTrigger.setAttribute("aria-expanded", isOpen ? "true" : "false");
});
document.addEventListener("click", function (event) {
if (!userMenu.contains(event.target)) {
userMenu.classList.remove("open");
userMenuTrigger.setAttribute("aria-expanded", "false");
}
});
}
window.addEventListener("resize", syncSidebarState);
syncSidebarState();
})();