릴리스: v1.4.38 최고 관리자 보호 및 프리뷰 셸 정리

This commit is contained in:
2026-04-03 10:08:46 +09:00
parent 764e18c16b
commit 713b07a1de
14 changed files with 118 additions and 142 deletions

View File

@@ -43,7 +43,9 @@ const authReady = computed(() => auth.hydrated)
const isAdmin = computed(() => authReady.value && !!auth.user?.isAdmin)
const isPreviewMode = computed(() => route.query.preview === '1')
const isAdminRoute = computed(() => String(route.name || '').startsWith('admin'))
const usesLocalRightRail = computed(() => ['editEditor', 'newEditor'].includes(String(route.name || '')) || isAdminRoute.value)
const usesLocalRightRail = computed(
() => !isPreviewMode.value && (['editEditor', 'newEditor'].includes(String(route.name || '')) || isAdminRoute.value)
)
const isRightRailOverlay = computed(() => viewportWidth.value <= 1200)
const isMobileLayout = computed(() => viewportWidth.value <= 860)
const avatarUrl = computed(() => (auth.user?.avatarSrc ? toApiUrl(auth.user.avatarSrc) : ''))
@@ -424,7 +426,6 @@ function reloadApp() {
<div
class="appShell"
:class="{
'appShell--preview': isPreviewMode,
'appShell--leftCollapsed': leftRailCollapsed,
'appShell--rightClosed': !rightRailOpen,
'appShell--rightOverlay': isRightRailOverlay,
@@ -450,25 +451,6 @@ function reloadApp() {
</section>
</main>
</template>
<template v-else-if="isPreviewMode">
<main class="appMain appMain--preview">
<div class="previewShell">
<div class="previewShell__main">
<RouterView />
</div>
<aside class="previewShell__rail">
<div class="previewShell__railInner">
<RightRailAd class-name="previewShell__ad" />
</div>
<div class="previewShell__footer">
<span>Copyright © 2026 </span>
<a :href="RIGHT_RAIL_COPYRIGHT_URL" target="_blank" rel="noreferrer">zenn</a>
<span>. All rights reserved.</span>
</div>
</aside>
</div>
</main>
</template>
<template v-else>
<aside class="leftRail">
<div class="leftRail__top railHeader">
@@ -711,6 +693,7 @@ function reloadApp() {
}
.backendFallback {
min-width: 100dvw;
min-height: 100dvh;
display: grid;
place-items: center;
@@ -769,10 +752,6 @@ function reloadApp() {
cursor: pointer;
}
.appShell--preview {
display: block;
}
.leftRail,
.rightRail {
min-height: 100dvh;
@@ -1234,47 +1213,6 @@ function reloadApp() {
border-right: 1px solid var(--theme-border);
}
.appMain--preview {
padding: 0;
}
.previewShell {
min-height: 100dvh;
display: grid;
grid-template-columns: minmax(0, 1fr) 325px;
}
.previewShell__main {
min-width: 0;
}
.previewShell__rail {
min-width: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 20px;
padding: 16px 18px 20px;
border-left: 1px solid var(--theme-border);
background: var(--theme-rail-bg);
}
.previewShell__railInner {
display: grid;
gap: 16px;
}
.previewShell__footer {
font-size: 10px;
line-height: 1.5;
color: var(--theme-text-faint);
}
.previewShell__footer a {
color: #00ffff;
text-decoration: none;
}
.workspace {
display: grid;
grid-template-rows: 56px minmax(0, 1fr);
@@ -1886,14 +1824,6 @@ function reloadApp() {
}
@media (max-width: 1200px) {
.previewShell {
grid-template-columns: 1fr;
}
.previewShell__rail {
display: none;
}
.guideModal__dialog {
grid-template-columns: 1fr;
height: min(860px, calc(100dvh - 40px));