summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/navigation/Link.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/lib/navigation/Link.svelte')
-rw-r--r--frontend/src/lib/navigation/Link.svelte20
1 files changed, 20 insertions, 0 deletions
diff --git a/frontend/src/lib/navigation/Link.svelte b/frontend/src/lib/navigation/Link.svelte
new file mode 100644
index 0000000..7297a69
--- /dev/null
+++ b/frontend/src/lib/navigation/Link.svelte
@@ -0,0 +1,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="flex items-center" {target} {title} {href} use:accelerator={accel}>
+ <div class="flex p-3">
+ <slot />
+ </div>
+ </a>
+</li>