|
@@ -32,11 +32,11 @@ const preferencesStore = usePreferencesStore()
|
|
|
const { scrollbarInMainLayout } = useComponentThemeOverrides()
|
|
|
|
|
|
const mediaQuery = {
|
|
|
- sm: useMediaQuery('(max-width: 640px)'),
|
|
|
- md: useMediaQuery('(max-width: 768px)'),
|
|
|
- lg: useMediaQuery('(max-width: 1024px)'),
|
|
|
- xl: useMediaQuery('(max-width: 1280px)'),
|
|
|
- xxl: useMediaQuery('(max-width: 1536px)'),
|
|
|
+ isSmallScreen: useMediaQuery('(max-width: 640px)'),
|
|
|
+ isMediumScreen: useMediaQuery('(max-width: 768px)'),
|
|
|
+ isLargeScreen: useMediaQuery('(max-width: 1024px)'),
|
|
|
+ isExtraLargeScreen: useMediaQuery('(max-width: 1280px)'),
|
|
|
+ isExtraExtraLargeScreen: useMediaQuery('(max-width: 1536px)'),
|
|
|
}
|
|
|
|
|
|
const layoutSlideDirection = ref<LayoutSlideDirection>(null)
|
|
@@ -56,7 +56,7 @@ function setLayoutSlideDirection(direction: LayoutSlideDirection) {
|
|
|
}
|
|
|
|
|
|
watch(
|
|
|
- () => mediaQuery.sm.value,
|
|
|
+ () => mediaQuery.isSmallScreen.value,
|
|
|
(isSm) => {
|
|
|
if (isSm) {
|
|
|
preferencesStore.modify({
|
|
@@ -82,28 +82,28 @@ provide(layoutInjectionKey, {
|
|
|
class="relative flex h-svh overflow-hidden"
|
|
|
:style="{ backgroundImage: `url(${texturePng})` }"
|
|
|
>
|
|
|
- <MobileLeftAside v-if="mediaQuery.sm.value" />
|
|
|
+ <MobileLeftAside v-if="mediaQuery.isSmallScreen.value" />
|
|
|
|
|
|
<div
|
|
|
class="relative flex h-full w-full flex-col border-naive-border bg-naive-card/50 transition-[background-color,border-color,rounded,transform]"
|
|
|
:class="{
|
|
|
- 'rounded-xl border': mediaQuery.sm.value && layoutTranslateOffset,
|
|
|
+ 'rounded-xl border': mediaQuery.isSmallScreen.value && layoutTranslateOffset,
|
|
|
}"
|
|
|
:style="
|
|
|
- mediaQuery.sm.value &&
|
|
|
+ mediaQuery.isSmallScreen.value &&
|
|
|
layoutSlideDirection && {
|
|
|
transform: `translate(${layoutTranslateOffset}px) scale(0.88)`,
|
|
|
}
|
|
|
"
|
|
|
>
|
|
|
- <HeaderLayout v-if="!mediaQuery.sm.value" />
|
|
|
+ <HeaderLayout v-if="!mediaQuery.isSmallScreen.value" />
|
|
|
<MobileHeader v-else />
|
|
|
<div class="flex flex-1 overflow-hidden">
|
|
|
- <AsideLayout v-if="!mediaQuery.sm.value" />
|
|
|
+ <AsideLayout v-if="!mediaQuery.isSmallScreen.value" />
|
|
|
<div class="relative flex flex-1 flex-col overflow-x-hidden">
|
|
|
<CollapseTransition
|
|
|
:display="
|
|
|
- !mediaQuery.sm.value &&
|
|
|
+ !mediaQuery.isSmallScreen.value &&
|
|
|
!isEmpty(tabsStore.tabs) &&
|
|
|
preferencesStore.preferences.showTabs
|
|
|
"
|
|
@@ -116,7 +116,7 @@ provide(layoutInjectionKey, {
|
|
|
<NScrollbar
|
|
|
class="transition-[padding]"
|
|
|
:class="{
|
|
|
- 'pb-4': mediaQuery.sm.value && layoutSlideDirection,
|
|
|
+ 'pb-4': mediaQuery.isSmallScreen.value && layoutSlideDirection,
|
|
|
}"
|
|
|
container-class="main-container"
|
|
|
:theme-overrides="scrollbarInMainLayout"
|
|
@@ -135,7 +135,7 @@ provide(layoutInjectionKey, {
|
|
|
</template>
|
|
|
</EmptyPlaceholder>
|
|
|
<CollapseTransition
|
|
|
- :display="!mediaQuery.sm.value && preferencesStore.preferences.showFooter"
|
|
|
+ :display="!mediaQuery.isSmallScreen.value && preferencesStore.preferences.showFooter"
|
|
|
direction="horizontal"
|
|
|
:render-content="false"
|
|
|
container-class="shrink-0 items-baseline"
|
|
@@ -145,11 +145,11 @@ provide(layoutInjectionKey, {
|
|
|
</div>
|
|
|
</div>
|
|
|
<div
|
|
|
- v-if="mediaQuery.sm.value && layoutSlideDirection"
|
|
|
+ v-if="mediaQuery.isSmallScreen.value && layoutSlideDirection"
|
|
|
class="absolute inset-0"
|
|
|
@click="setLayoutSlideDirection(null)"
|
|
|
/>
|
|
|
</div>
|
|
|
- <MobileRightAside v-if="mediaQuery.sm.value" />
|
|
|
+ <MobileRightAside v-if="mediaQuery.isSmallScreen.value" />
|
|
|
</div>
|
|
|
</template>
|