Skip to content

Commit 0de856d

Browse files
committed
fix(router): correct href generation for target=_blank links in hash history mode
Signed-off-by: leesb971204 <leesb971204@gmail.com>
1 parent 7771c00 commit 0de856d

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

packages/react-router/src/link.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,13 @@ export function useLinkProps<
120120
let external = false
121121
if (router.origin) {
122122
if (href.startsWith(router.origin)) {
123-
href = href.replace(router.origin, '') || '/'
123+
href = router.history.createHref(href.replace(router.origin, '')) || '/'
124124
} else {
125125
external = true
126126
}
127127
}
128128
return { href, external }
129-
}, [disabled, next.maskedLocation, next.url, router.origin])
129+
}, [disabled, next.maskedLocation, next.url, router.origin, router.history])
130130

131131
const externalLink = React.useMemo(() => {
132132
if (hrefOption?.external) {
@@ -233,14 +233,14 @@ export function useLinkProps<
233233
// Check actual element's target attribute as fallback
234234
const elementTarget = (e.currentTarget as HTMLAnchorElement).target
235235
const effectiveTarget = target !== undefined ? target : elementTarget
236-
237236
if (
238237
!disabled &&
239238
!isCtrlEvent(e) &&
240239
!e.defaultPrevented &&
241240
(!effectiveTarget || effectiveTarget === '_self') &&
242241
e.button === 0
243242
) {
243+
console.log('effectiveTarget', effectiveTarget)
244244
e.preventDefault()
245245

246246
flushSync(() => {

packages/solid-router/src/link.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export function useLinkProps<
146146
let external = false
147147
if (router.origin) {
148148
if (href.startsWith(router.origin)) {
149-
href = href.replace(router.origin, '')
149+
href = router.history.createHref(href.replace(router.origin, ''))
150150
} else {
151151
external = true
152152
}

0 commit comments

Comments
 (0)