Files
gpx.studio/website/src/routes/[[language]]/help/+layout.svelte

54 lines
1.9 KiB
Svelte
Raw Normal View History

2024-07-08 22:43:50 +02:00
<script lang="ts">
import { Button } from '$lib/components/ui/button';
import { getURLForLanguage } from '$lib/utils';
2025-06-21 21:07:36 +02:00
import { i18n } from '$lib/i18n.svelte';
import { page } from '$app/state';
import { guides } from '$lib/components/docs/docs';
2025-06-21 21:07:36 +02:00
import type { Snippet } from 'svelte';
2024-09-20 13:22:05 +02:00
2025-06-21 21:07:36 +02:00
let {
data,
children,
}: {
data: {
guideTitles: Record<string, string>;
};
children: Snippet;
} = $props();
2024-07-08 22:43:50 +02:00
</script>
2024-09-03 15:51:15 +02:00
<div class="grow px-12 pt-6 pb-12 flex flex-row gap-24">
<div
class="hidden md:flex flex-col gap-2 w-40 sticky mt-[27px] top-[108px] self-start shrink-0"
>
{#each Object.keys(guides) as guide}
<Button
variant="link"
2025-06-21 21:07:36 +02:00
href={getURLForLanguage(i18n.lang, `/help/${guide}`)}
class="min-h-5 h-fit p-0 w-fit text-muted-foreground hover:text-foreground hover:no-underline font-normal hover:font-semibold items-start whitespace-normal {page
.params.guide === guide
? 'font-semibold text-foreground'
: ''}"
>
{data.guideTitles[guide]}
</Button>
{#each guides[guide] as subGuide}
<Button
variant="link"
2025-06-21 21:07:36 +02:00
href={getURLForLanguage(i18n.lang, `/help/${guide}/${subGuide}`)}
class="min-h-5 h-fit p-0 w-fit text-muted-foreground hover:text-foreground hover:no-underline font-normal hover:font-semibold items-start whitespace-normal ml-3 {page
.params.guide ===
guide + '/' + subGuide
? 'font-semibold text-foreground'
: ''}"
>
{data.guideTitles[`${guide}/${subGuide}`]}
</Button>
{/each}
{/each}
</div>
<div class="grow">
2025-06-21 21:07:36 +02:00
{@render children()}
</div>
2024-07-08 22:43:50 +02:00
</div>