Files
sori.studio/composables/useMenuState.js

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
}
}