mirror of
https://github.com/zoriya/v10.git
synced 2026-08-15 18:34:22 +00:00
63 lines
2.1 KiB
Plaintext
63 lines
2.1 KiB
Plaintext
---
|
|
import { ChevronDown } from 'lucide-react';
|
|
import type { Guide, SupportedFramework } from '@/types/docs';
|
|
|
|
type Props = {
|
|
prev: Guide | null;
|
|
next: Guide | null;
|
|
framework: SupportedFramework;
|
|
docTitles: Map<string, string>;
|
|
};
|
|
|
|
const { prev, next, framework, docTitles } = Astro.props;
|
|
|
|
function getGuideUrl(framework: SupportedFramework, slug: string): string {
|
|
return `/docs/framework/${framework}/${slug}`;
|
|
}
|
|
---
|
|
|
|
<nav class="w-full max-w-3xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-5">
|
|
{
|
|
prev ? (
|
|
<a
|
|
href={getGuideUrl(framework, prev.slug)}
|
|
class="grid items-center gap-x-2 p-4 border border-light-40 dark:border-dark-80 rounded-lg intent:border-dark-40 dark:intent:border-dark-40"
|
|
style="grid-template-areas: 'empty direction' 'icon title'; grid-template-columns: auto minmax(0,1fr); grid-template-rows: auto minmax(0,1fr);"
|
|
>
|
|
<div class="text-sm text-dark-80 dark:text-light-40" style="grid-area: direction;">
|
|
Previous
|
|
</div>
|
|
<div class="text-base font-medium text-balance" style="grid-area: title">
|
|
{prev.sidebarLabel || docTitles.get(prev.slug)}
|
|
</div>
|
|
<div style="grid-area: icon">
|
|
<ChevronDown size={12} className="rotate-90" />
|
|
</div>
|
|
</a>
|
|
) : (
|
|
<div />
|
|
)
|
|
}
|
|
{
|
|
next ? (
|
|
<a
|
|
href={getGuideUrl(framework, next.slug)}
|
|
class="grid items-center gap-x-2 p-4 border border-light-40 dark:border-dark-80 rounded-lg intent:border-dark-40 text-right dark:intent:border-dark-40"
|
|
style="grid-template-areas: 'direction empty' 'title icon';grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto minmax(0,1fr);"
|
|
>
|
|
<div class="text-sm text-dark-80 dark:text-light-40" style="grid-area: direction;">
|
|
Next
|
|
</div>
|
|
<div class="text-base font-medium text-balance" style="grid-area: title">
|
|
{next.sidebarLabel || docTitles.get(next.slug)}
|
|
</div>
|
|
<div style="grid-area: icon">
|
|
<ChevronDown size={12} className="-rotate-90" />
|
|
</div>
|
|
</a>
|
|
) : (
|
|
<div />
|
|
)
|
|
}
|
|
</nav>
|