모바일 새로고침 시 좌측 사이드바 열림→닫힘 애니메이션 문제 수정
- useMenuState에 menuMounted 추가, 모바일은 항상 닫힘 상태로 시작 - 좌측 사이드바 모바일 오버레이·백드롭을 마운트 이후에만 열리도록 게이팅 - 데스크톱 기본 열림·저장 설정은 그대로 유지 - v1.10.30 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,13 +6,26 @@ const menuStorageKey = 'MENU_STATE'
|
||||
*/
|
||||
export const useMenuState = () => {
|
||||
const menuOpen = useState('site-menu-open', () => true)
|
||||
const menuMounted = useState('site-menu-mounted', () => false)
|
||||
|
||||
onMounted(() => {
|
||||
const savedState = localStorage.getItem(menuStorageKey)
|
||||
|
||||
if (savedState) {
|
||||
menuOpen.value = savedState === 'open'
|
||||
if (menuMounted.value) {
|
||||
return
|
||||
}
|
||||
|
||||
const isNarrow = window.matchMedia('(max-width: 1023px)').matches
|
||||
|
||||
if (isNarrow) {
|
||||
// 모바일은 항상 닫힌 상태로 시작한다(데스크톱 저장 설정은 보존).
|
||||
menuOpen.value = false
|
||||
} else {
|
||||
const savedState = localStorage.getItem(menuStorageKey)
|
||||
if (savedState) {
|
||||
menuOpen.value = savedState === 'open'
|
||||
}
|
||||
}
|
||||
|
||||
menuMounted.value = true
|
||||
})
|
||||
|
||||
/**
|
||||
@@ -38,6 +51,7 @@ export const useMenuState = () => {
|
||||
|
||||
return {
|
||||
menuOpen,
|
||||
menuMounted,
|
||||
toggleMenu,
|
||||
closeMenu
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user