32 lines
711 B
JavaScript
32 lines
711 B
JavaScript
const menuStorageKey = 'MENU_STATE'
|
|
|
|
/**
|
|
* 좌측 메뉴 열림 상태 관리
|
|
* @returns {{menuOpen: import('vue').Ref<boolean>, toggleMenu: Function}} 메뉴 상태와 토글 함수
|
|
*/
|
|
export const useMenuState = () => {
|
|
const menuOpen = useState('site-menu-open', () => true)
|
|
|
|
onMounted(() => {
|
|
const savedState = localStorage.getItem(menuStorageKey)
|
|
|
|
if (savedState) {
|
|
menuOpen.value = savedState === 'open'
|
|
}
|
|
})
|
|
|
|
/**
|
|
* 좌측 메뉴 열림 상태 토글
|
|
* @returns {void}
|
|
*/
|
|
const toggleMenu = () => {
|
|
menuOpen.value = !menuOpen.value
|
|
localStorage.setItem(menuStorageKey, menuOpen.value ? 'open' : 'closed')
|
|
}
|
|
|
|
return {
|
|
menuOpen,
|
|
toggleMenu
|
|
}
|
|
}
|