From 79754d45c1e20fb87bca13bbe4a76f6a2d09bf11 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Tue, 14 Nov 2023 22:51:40 +0100 Subject: [PATCH] add auto-scroll on current sidebar item remove jquery from sidebar module --- src/core/Resources/assets/js/admin.js | 2 +- .../Resources/assets/js/modules/sidebar.js | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/core/Resources/assets/js/admin.js b/src/core/Resources/assets/js/admin.js index b619439..58cb77c 100644 --- a/src/core/Resources/assets/js/admin.js +++ b/src/core/Resources/assets/js/admin.js @@ -1,6 +1,7 @@ import '../../../../../../../../assets/css/admin.scss'; require('../../../../../../../../node_modules/bootstrap/dist/js/bootstrap.min.js') +require('./modules/sidebar.js')() require('./modules/table-fixed.js')() require('./modules/form-confirm.js')() require('./modules/form-file.js')() @@ -27,5 +28,4 @@ require('./modules/file-manager.js')() require('./modules/file-picker.js')() require('./modules/analytics.js')() require('./modules/page.js')() -require('./modules/sidebar.js')() require('./modules/node.js')() diff --git a/src/core/Resources/assets/js/modules/sidebar.js b/src/core/Resources/assets/js/modules/sidebar.js index a93e210..5b2326b 100644 --- a/src/core/Resources/assets/js/modules/sidebar.js +++ b/src/core/Resources/assets/js/modules/sidebar.js @@ -1,9 +1,21 @@ const $ = require('jquery') -const SidebarOpener = () => { - $('.sidebar-toggler .btn').click(() => { - $('.sidebar').toggleClass('is-open') +const Sidebar = () => { + const menu = document.querySelector('.sidebar') + + if (!menu) { + return + } + + const stickyMenu = menu.querySelector('.sidebar-sticky') + const currentItem = menu.querySelector('.nav-link.active') + const toggler = menu.querySelector('.sidebar-toggler .btn') + + toggler.addEventListener('click', () => { + menu.classList.toggle('is-open') }) + + stickyMenu.scroll({top: currentItem.offsetTop - menu.scrollTop}) } -module.exports = SidebarOpener +module.exports = Sidebar