mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-15 11:20:36 +08:00
27 lines
605 B
Svelte
27 lines
605 B
Svelte
<script lang="ts" strictEvents>
|
|
import type { Route } from "@app/lib/router/definitions";
|
|
|
|
import { createEventDispatcher } from "svelte";
|
|
import { push, routeToPath, useDefaultNavigation } from "@app/lib/router";
|
|
|
|
export let route: Route;
|
|
|
|
const dispatch = createEventDispatcher<{
|
|
afterNavigate: never;
|
|
}>();
|
|
|
|
function navigateToRoute(event: MouseEvent): void {
|
|
if (useDefaultNavigation(event)) {
|
|
return;
|
|
}
|
|
|
|
event.preventDefault();
|
|
push(route);
|
|
dispatch("afterNavigate");
|
|
}
|
|
</script>
|
|
|
|
<a on:click={navigateToRoute} href={routeToPath(route)}>
|
|
<slot />
|
|
</a>
|