elk/components/main/MainContent.vue

42 lines
1.1 KiB
Vue
Raw Normal View History

2022-11-26 12:58:10 +00:00
<script setup lang="ts">
defineProps<{
2022-12-29 12:21:00 +00:00
/** Show the back button on small screens */
backOnSmallScreen?: boolean
2022-12-29 12:21:00 +00:00
/** Show the back button on both small and big screens */
back?: boolean
2022-11-26 12:58:10 +00:00
}>()
</script>
<template>
2022-12-30 22:45:34 +00:00
<div>
2022-11-23 08:08:49 +00:00
<div
2022-12-30 22:45:34 +00:00
sticky top-0 z10 backdrop-blur
pt="[env(safe-area-inset-top,0)]"
border="b base" bg="[rgba(var(--c-bg-base-rgb),0.7)]"
2022-11-23 08:08:49 +00:00
>
<div flex justify-between px5 py4>
2022-12-04 14:26:42 +00:00
<div flex gap-3 items-center overflow-hidden>
<NuxtLink
2022-12-29 12:21:00 +00:00
v-if="backOnSmallScreen || back" flex="~ gap1" items-center btn-text p-0
:class="{ 'lg:hidden': backOnSmallScreen }"
@click="$router.go(-1)"
>
2022-11-29 12:06:08 +00:00
<div i-ri:arrow-left-line />
2022-11-26 12:58:10 +00:00
</NuxtLink>
2022-12-04 14:26:42 +00:00
<div truncate>
<slot name="title" />
</div>
2022-12-04 14:26:42 +00:00
<div h-7 w-1px />
</div>
<div flex items-center flex-shrink-0 gap-x-2>
2022-12-04 14:26:42 +00:00
<slot name="actions" />
2022-12-23 18:26:28 +00:00
<PwaBadge lg:hidden />
2022-12-26 14:17:23 +00:00
<NavUser v-if="isMastoInitialised" />
</div>
</div>
2022-11-23 08:08:49 +00:00
<slot name="header" />
</div>
2022-11-27 00:35:19 +00:00
<slot />
</div>
</template>