2022-11-26 21:58:10 +09:00
|
|
|
<script setup lang="ts">
|
|
|
|
defineProps<{
|
2022-12-29 21:21:00 +09:00
|
|
|
/** Show the back button on small screens */
|
2022-12-28 10:12:56 +09:00
|
|
|
backOnSmallScreen?: boolean
|
2022-12-29 21:21:00 +09:00
|
|
|
/** Show the back button on both small and big screens */
|
|
|
|
back?: boolean
|
2022-11-26 21:58:10 +09:00
|
|
|
}>()
|
2023-01-21 23:55:20 +09:00
|
|
|
|
|
|
|
const route = useRoute()
|
|
|
|
const wideLayout = computed(() => route.meta.wideLayout ?? false)
|
2022-11-26 21:58:10 +09:00
|
|
|
</script>
|
|
|
|
|
2022-11-15 22:50:41 +09:00
|
|
|
<template>
|
2022-12-31 07:45:34 +09:00
|
|
|
<div>
|
2022-11-23 17:08:49 +09:00
|
|
|
<div
|
2022-12-31 07:45:34 +09:00
|
|
|
sticky top-0 z10 backdrop-blur
|
|
|
|
pt="[env(safe-area-inset-top,0)]"
|
2023-01-23 05:20:25 +09:00
|
|
|
border="b base" bg="[rgba(var(--rgb-bg-base),0.7)]"
|
2023-01-21 23:55:20 +09:00
|
|
|
class="native:lg:w-[calc(100vw-5rem)] native:xl:w-[calc(135%+(100vw-1200px)/2)]"
|
2022-11-23 17:08:49 +09:00
|
|
|
>
|
2023-01-21 23:55:20 +09:00
|
|
|
<div flex justify-between px5 py2 :class="{ 'xl:hidden': $route.name !== 'tag' }" data-tauri-drag-region class="native:xl:flex">
|
|
|
|
<div flex gap-3 items-center overflow-hidden py2 class="native-mac:pl-14 native-mac:sm:pl-0">
|
2022-12-28 10:12:56 +09:00
|
|
|
<NuxtLink
|
2023-01-13 23:49:52 +09:00
|
|
|
v-if="backOnSmallScreen || back" flex="~ gap1" items-center btn-text p-0 xl:hidden
|
2023-01-07 02:46:06 +09:00
|
|
|
:aria-label="$t('nav.back')"
|
2022-12-28 10:12:56 +09:00
|
|
|
@click="$router.go(-1)"
|
|
|
|
>
|
2023-01-01 23:29:11 +09:00
|
|
|
<div i-ri:arrow-left-line class="rtl-flip" />
|
2022-11-26 21:58:10 +09:00
|
|
|
</NuxtLink>
|
2022-12-04 23:26:42 +09:00
|
|
|
<div truncate>
|
2022-12-03 14:19:59 +09:00
|
|
|
<slot name="title" />
|
|
|
|
</div>
|
2022-12-04 23:26:42 +09:00
|
|
|
<div h-7 w-1px />
|
|
|
|
</div>
|
2022-12-16 04:59:47 +09:00
|
|
|
<div flex items-center flex-shrink-0 gap-x-2>
|
2022-12-04 23:26:42 +09:00
|
|
|
<slot name="actions" />
|
2022-12-24 03:26:28 +09:00
|
|
|
<PwaBadge lg:hidden />
|
2023-01-15 17:38:02 +09:00
|
|
|
<NavUser v-if="isHydrated" />
|
2022-12-31 21:26:52 +09:00
|
|
|
<NavUserSkeleton v-else />
|
2022-11-21 06:30:21 +09:00
|
|
|
</div>
|
2022-11-15 22:50:41 +09:00
|
|
|
</div>
|
2022-11-23 17:08:49 +09:00
|
|
|
<slot name="header" />
|
2022-11-15 22:50:41 +09:00
|
|
|
</div>
|
2023-01-11 22:39:20 +09:00
|
|
|
<div :class="{ 'xl:block': $route.name !== 'tag' }" hidden h-6 />
|
2023-01-26 00:26:51 +09:00
|
|
|
<PwaInstallPrompt lg:hidden />
|
2023-01-21 23:55:20 +09:00
|
|
|
<div :class="isHydrated && wideLayout ? 'xl:w-full sm:max-w-600px' : 'sm:max-w-600px md:shrink-0'" m-auto>
|
|
|
|
<slot />
|
|
|
|
</div>
|
2022-11-15 22:50:41 +09:00
|
|
|
</div>
|
|
|
|
</template>
|