summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/navigation/Link.svelte
blob: be09a3646e0a07fa79eab0804971dd81cde662b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script lang="ts">
	import { page } from '$app/stores';
	import { accelerator, type Shortcut } from '$lib/Shortcuts';
	import type { HTMLAttributeAnchorTarget } from 'svelte/elements';

	export let href: string;
	export let title: string;
	export let accel: Shortcut;
	export let matchExact = false;
	export let target: HTMLAttributeAnchorTarget | undefined = undefined;
	$: active = matchExact ? $page.url.pathname === href : $page.url.pathname.startsWith(href);
</script>

<li class:active class="items-center hover:bg-indigo-700 [&.active]:bg-indigo-700">
	<a class="focus-background flex items-center" {target} {title} {href} use:accelerator={accel}>
		<div class="flex p-3">
			<slot />
		</div>
	</a>
</li>