| 1234567891011121314151617181920212223242526272829303132 |
- import { ref } from 'vue'
- const isCollapsed = ref(false)
- function syncCollapsedFromDom() {
- if (typeof document === 'undefined') return
- const leftWindow = document.querySelector('uni-left-window')
- isCollapsed.value = leftWindow?.classList.contains('collapsed') ?? false
- }
- function toggleLeftSidebar() {
- isCollapsed.value = !isCollapsed.value
- const leftWindow = document.querySelector('uni-left-window')
- const content = document.querySelector('uni-content')
- if (!leftWindow || !content) return
- if (isCollapsed.value) {
- leftWindow.classList.add('collapsed')
- content.classList.add('collapsed')
- } else {
- leftWindow.classList.remove('collapsed')
- content.classList.remove('collapsed')
- }
- }
- export function useLeftSidebarCollapse() {
- return {
- isCollapsed,
- toggleLeftSidebar,
- syncCollapsedFromDom,
- }
- }
|