릴리스: v1.4.38 최고 관리자 보호 및 프리뷰 셸 정리
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user