40 lines
1.2 KiB
Plaintext
40 lines
1.2 KiB
Plaintext
---
|
|
import Footer from '@/components/layout/Footer.astro';
|
|
import Navbar from '@/components/layout/Navbar.astro';
|
|
import { resolveSeo } from '@/lib/seo';
|
|
import BaseLayout from '@/layouts/BaseLayout.astro';
|
|
|
|
interface Props {
|
|
currentPath: string;
|
|
description?: string;
|
|
title?: string;
|
|
}
|
|
|
|
const { currentPath, description, title } = Astro.props;
|
|
const seo =
|
|
title && description
|
|
? resolveSeo({ description, path: currentPath, title })
|
|
: undefined;
|
|
---
|
|
|
|
<BaseLayout
|
|
title={title}
|
|
description={description}
|
|
canonicalUrl={seo?.canonicalUrl}
|
|
openGraphTitle={seo?.ogTitle}
|
|
openGraphDescription={seo?.ogDescription}
|
|
robots={seo?.robots}
|
|
>
|
|
<div class="surface-shell min-h-screen">
|
|
<div
|
|
class="pointer-events-none absolute inset-x-0 top-0 -z-10 h-[30rem] bg-[radial-gradient(circle_at_top,rgba(47,111,183,0.16),transparent_50%),radial-gradient(circle_at_top_right,rgba(59,139,120,0.14),transparent_28%)]"
|
|
>
|
|
</div>
|
|
<Navbar currentPath={currentPath} />
|
|
<main id="content" class="pb-16 sm:pb-20">
|
|
<slot />
|
|
</main>
|
|
<Footer currentPath={currentPath} />
|
|
</div>
|
|
</BaseLayout>
|