사이드바 메뉴 토글 추가
This commit is contained in:
31
composables/useMenuState.js
Normal file
31
composables/useMenuState.js
Normal file
@@ -0,0 +1,31 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user