Files
radicle-explorer/src/components/Link.svelte
T
Rūdolfs Ošiņšanddnlklmn d914710396 Implement new design
Co-authored-by: dnlklmn <pelicansinberlin@gmail.com>
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-10-13 18:05:19 +02:00

34 lines
780 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;
export let disabled: boolean = false;
export let title: string | undefined = undefined;
const dispatch = createEventDispatcher<{
afterNavigate: null;
}>();
function navigateToRoute(event: MouseEvent): void {
if (disabled) {
event.preventDefault();
return;
}
if (useDefaultNavigation(event)) {
return;
}
event.preventDefault();
void push(route);
dispatch("afterNavigate");
}
</script>
<a on:click={navigateToRoute} href={routeToPath(route)} {title}>
<slot />
</a>