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

- 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

@@ -1,5 +1,5 @@
<script setup>
const { menuOpen, closeMenu } = useMenuState()
const { menuOpen, menuMounted, closeMenu } = useMenuState()
/**
* 모바일에서 좌측 슬라이드 메뉴가 열려 있을 때 문서 스크롤을 잠근다.
@@ -40,7 +40,7 @@ onBeforeUnmount(() => {
leave-to-class="opacity-0"
>
<div
v-show="menuOpen"
v-show="menuOpen && menuMounted"
class="public-layout__nav-backdrop fixed inset-x-0 bottom-0 z-40 bg-black/35 backdrop-blur-[2px] lg:hidden"
style="top: var(--site-top-chrome-height, 57px)"
aria-hidden="true"
@@ -60,7 +60,7 @@ onBeforeUnmount(() => {
<div class="public-layout__right-column lg:col-start-3 lg:row-start-1 lg:self-stretch lg:border-l lg:border-[var(--site-line)]">
<RightSidebar />
</div>
<LeftSidebar :menu-open="menuOpen" class="lg:col-start-1 lg:row-start-1" />
<LeftSidebar :menu-open="menuOpen" :menu-mounted="menuMounted" class="lg:col-start-1 lg:row-start-1" />
</div>
</div>
</template>

View File

@@ -1,5 +1,5 @@
<script setup>
const { menuOpen, closeMenu } = useMenuState()
const { menuOpen, menuMounted, closeMenu } = useMenuState()
/**
* 모바일에서 좌측 슬라이드 메뉴가 열려 있을 때 문서 스크롤을 잠근다.
@@ -40,7 +40,7 @@ onBeforeUnmount(() => {
leave-to-class="opacity-0"
>
<div
v-show="menuOpen"
v-show="menuOpen && menuMounted"
class="post-layout__nav-backdrop fixed inset-x-0 bottom-0 z-40 bg-black/35 backdrop-blur-[2px] lg:hidden"
style="top: var(--site-top-chrome-height, 57px)"
aria-hidden="true"
@@ -60,7 +60,7 @@ onBeforeUnmount(() => {
<div class="post-layout__right-column lg:col-start-3 lg:row-start-1 lg:self-stretch lg:border-l lg:border-[var(--site-line)]">
<RightSidebar />
</div>
<LeftSidebar :menu-open="menuOpen" class="lg:col-start-1 lg:row-start-1" />
<LeftSidebar :menu-open="menuOpen" :menu-mounted="menuMounted" class="lg:col-start-1 lg:row-start-1" />
</div>
</div>
</template>