Shallie/src/routes/+layout.svelte

70 lines
1.8 KiB
Svelte
Raw Normal View History

2022-07-23 20:52:23 +00:00
<script lang="ts">
2022-07-24 17:21:42 +00:00
import { navigating } from '$app/stores';
2022-07-23 20:52:23 +00:00
import { goto } from '$app/navigation';
import { browseSettings } from '$lib/content/contentApi';
import Base from '@damillora/plachta/components/Base/Base.svelte';
2022-07-24 11:42:22 +00:00
import Footer from '@damillora/plachta/components/Footer/Footer.svelte';
2022-07-23 20:52:23 +00:00
import Header from '@damillora/plachta/components/Header/Header.svelte';
import NavDarkMode from '@damillora/plachta/components/Nav/NavDarkMode.svelte';
import NavMenu from '@damillora/plachta/components/Nav/NavMenu.svelte';
import NavSearch from '@damillora/plachta/components/Nav/NavSearch.svelte';
2022-07-24 17:21:42 +00:00
import NavigationLoading from '@damillora/plachta/components/NavigationLoading/NavigationLoading.svelte';
2022-07-23 20:52:23 +00:00
import type { Load } from '@sveltejs/kit';
const doSearch = (e: any) => {
if (e.detail.query) {
goto('/search?q=' + e.detail.query, { replaceState: true, keepfocus: true });
} else {
goto('/', { replaceState: true, keepfocus: true });
}
};
2022-12-17 11:07:39 +00:00
export let data;
2022-07-24 17:21:42 +00:00
let loading = true;
navigating.subscribe((x) => (loading = x != null));
2022-07-23 20:52:23 +00:00
</script>
<svelte:head>
2022-12-17 11:07:39 +00:00
{@html data.header}
2022-07-23 20:52:23 +00:00
</svelte:head>
<Base>
<Header>
<svelte:fragment slot="title">
<a href="/"> <strong>Damillora</strong>'s Virtual Memoir </a>
</svelte:fragment>
<svelte:fragment slot="nav">
2022-07-23 22:35:23 +00:00
<NavMenu label="nanao.moe" url="https://nanao.moe" />
2022-07-23 20:52:23 +00:00
<NavDarkMode />
<NavSearch on:search={doSearch} />
</svelte:fragment>
</Header>
<slot />
2022-12-17 11:07:39 +00:00
{@html data.footer}
2022-07-23 20:52:23 +00:00
<Footer>
2022-12-17 11:07:39 +00:00
<p>Copyright (c) 2023 Damillora</p>
2022-07-23 20:52:23 +00:00
</Footer>
</Base>
2022-07-24 17:21:42 +00:00
<NavigationLoading {loading} />
<style lang="scss">
// Responsive embeds
:global(.fluid-width-video-wrapper) {
width: 100%;
position: relative;
padding: 0;
:global(iframe),
:global(object),
:global(embed) {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
</style>