모바일 새로고침 시 좌측 사이드바 열림→닫힘 애니메이션 문제 수정

- useMenuState에 menuMounted 추가, 모바일은 항상 닫힘 상태로 시작
- 좌측 사이드바 모바일 오버레이·백드롭을 마운트 이후에만 열리도록 게이팅
- 데스크톱 기본 열림·저장 설정은 그대로 유지
- v1.10.30

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-03 17:45:39 +09:00
parent b669d34e83
commit bb8d20f138
8 changed files with 45 additions and 16 deletions

View File

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