Files
imen_pishghaman/apps/web/app/layouts/default.vue
T

35 lines
998 B
Vue

<script setup lang="ts">
import { AnimatePresence } from "motion-v";
import BackToTop from "~/components/layout/BackToTop.vue";
import Cursor from "~/components/layout/Cursor.vue";
import Footer from "~/components/layout/Footer.vue";
import Header from "~/components/layout/Header.vue";
import Preloader from "~/components/layout/Preloader.vue";
/*
* Site chrome shared by every page. It lives in the layout (not in each page) so navigation
* swaps only the page content: animations here — e.g. the preloader's exit — never run on a
* page that is being torn down, which crashed Vue's transition code.
*/
const ui = useUiStore();
const site = useSiteStore();
</script>
<template>
<div>
<AnimatePresence>
<Preloader v-if="!ui.ready" @complete="ui.setReady" />
</AnimatePresence>
<Cursor />
<div class="noise" aria-hidden="true" />
<Header />
<slot />
<Footer v-if="site.sections?.footer?.enabled !== false" />
<BackToTop />
</div>
</template>