Sha256: d75b4cfef992ab3a9f577f74434422b8eb230447c37314fa25de4c202d094426

Contents?: true

Size: 1.44 KB

Versions: 15

Compression:

Stored size: 1.44 KB

Contents

import ApplicationController from "satis/controllers/application_controller"
import { debounce } from "satis/utils"

export default class SidebarComponentController extends ApplicationController {
    connect() {
        super.connect();
        this.initializeSidebar();
    }

    initializeSidebar() {
        let sidebar_collapse = document.querySelector(".sidebar");
        let topbar = document.querySelector(".topbar");
        let page_body = document.querySelector(".page_body");
        let sidebarBtn = document.querySelector(".arrow");

        // Check stored state and apply it
        const isClosed = sessionStorage.getItem('sidebarClosed') === 'true';
        if (isClosed) {
            sidebar_collapse?.classList.add("close");
            topbar?.classList.add("close");
            page_body?.classList.add("close");
        }

        if (sidebarBtn) {
            sidebarBtn.addEventListener("click", () => {
                const isClosed = sidebar_collapse.classList.toggle("close");
                topbar.classList.toggle("close");
                page_body.classList.toggle("close");

                // Save the current state to sessionStorage
                sessionStorage.setItem('sidebarClosed', isClosed);
            });
        }
    }
}

// Ensure the function runs on every Turbo page load
document.addEventListener("turbo:load", () => {
    const controller = new SidebarComponentController();
    controller.initializeSidebar();
});

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
satis-2.1.53 app/components/satis/sidebar/component_controller.js
satis-2.1.52 app/components/satis/sidebar/component_controller.js
satis-2.1.51 app/components/satis/sidebar/component_controller.js
satis-2.1.50 app/components/satis/sidebar/component_controller.js
satis-2.1.49 app/components/satis/sidebar/component_controller.js
satis-2.1.48 app/components/satis/sidebar/component_controller.js
satis-2.1.47 app/components/satis/sidebar/component_controller.js
satis-2.1.46 app/components/satis/sidebar/component_controller.js
satis-2.1.45 app/components/satis/sidebar/component_controller.js
satis-2.1.44 app/components/satis/sidebar/component_controller.js
satis-2.1.43 app/components/satis/sidebar/component_controller.js
satis-2.1.42 app/components/satis/sidebar/component_controller.js
satis-2.1.41 app/components/satis/sidebar/component_controller.js
satis-2.1.40 app/components/satis/sidebar/component_controller.js
satis-2.1.39 app/components/satis/sidebar/component_controller.js