From 67667b44882a65780e594c7bda44ec428f8499f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ramirez=20Vargas=2C=20Jos=C3=A9=20Pablo?= Date: Sat, 6 Sep 2025 22:19:47 -0600 Subject: [PATCH 1/2] fix: Ensure user-provided onclick event in Link component doesn't override internal onclick --- src/lib/Link/Link.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/Link/Link.svelte b/src/lib/Link/Link.svelte index 30e95aa..0d34d7b 100644 --- a/src/lib/Link/Link.svelte +++ b/src/lib/Link/Link.svelte @@ -80,6 +80,7 @@ prependBasePath, preserveQuery, children, + onclick: incomingOnclick, ...restProps }: Props = $props(); @@ -101,10 +102,11 @@ ) ); - function handleClick(event: MouseEvent) { + function handleClick(event: MouseEvent & { currentTarget: EventTarget & HTMLAnchorElement }) { event.preventDefault(); const newState = calculateState(resolvedHash, typeof state === 'function' ? state() : state); location.goTo(calcHref, { state: newState, replace: calcReplace }); + incomingOnclick?.(event); } function styleString() { From 7ac1b2a6ef9897aef08b397041240efaac6239f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pablo=20Ram=C3=ADrez=20Vargas?= Date: Sat, 6 Sep 2025 22:24:16 -0600 Subject: [PATCH 2/2] feat: Move calling order around to enable navigation cancellation Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/lib/Link/Link.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/Link/Link.svelte b/src/lib/Link/Link.svelte index 0d34d7b..67d1a97 100644 --- a/src/lib/Link/Link.svelte +++ b/src/lib/Link/Link.svelte @@ -103,10 +103,11 @@ ); function handleClick(event: MouseEvent & { currentTarget: EventTarget & HTMLAnchorElement }) { + incomingOnclick?.(event); + if (event.defaultPrevented) return; event.preventDefault(); const newState = calculateState(resolvedHash, typeof state === 'function' ? state() : state); location.goTo(calcHref, { state: newState, replace: calcReplace }); - incomingOnclick?.(event); } function styleString() {