mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-03 18:50:30 +08:00
30 lines
786 B
Svelte
30 lines
786 B
Svelte
<script lang="ts" strictEvents>
|
|
import type { ProjectsParams } from "@app/views/projects/router";
|
|
import { createEventDispatcher } from "svelte";
|
|
|
|
import { useDefaultNavigation } from "@app/lib/router";
|
|
import {
|
|
projectLinkHref,
|
|
updateProjectRoute,
|
|
} from "@app/views/projects/router";
|
|
|
|
export let projectParams: Partial<ProjectsParams>;
|
|
export let title: string | undefined = undefined;
|
|
|
|
const dispatch = createEventDispatcher<{ click: never }>();
|
|
|
|
function navigateToRoute(event: MouseEvent): void {
|
|
if (useDefaultNavigation(event)) {
|
|
return;
|
|
}
|
|
|
|
event.preventDefault();
|
|
updateProjectRoute(projectParams);
|
|
dispatch("click");
|
|
}
|
|
</script>
|
|
|
|
<a {title} on:click={navigateToRoute} href={projectLinkHref(projectParams)}>
|
|
<slot />
|
|
</a>
|