@tanstack/solid-router 1.132.0-alpha.4 → 1.132.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/cjs/Asset.cjs +30 -1
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/Matches.cjs +22 -18
  4. package/dist/cjs/Matches.cjs.map +1 -1
  5. package/dist/cjs/RouterProvider.cjs +9 -9
  6. package/dist/cjs/RouterProvider.cjs.map +1 -1
  7. package/dist/cjs/ScriptOnce.cjs +12 -2
  8. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  9. package/dist/cjs/fileRoute.cjs.map +1 -1
  10. package/dist/cjs/fileRoute.d.cts +3 -3
  11. package/dist/cjs/index.cjs +8 -4
  12. package/dist/cjs/index.cjs.map +1 -1
  13. package/dist/cjs/index.d.cts +4 -2
  14. package/dist/cjs/link.cjs +51 -32
  15. package/dist/cjs/link.cjs.map +1 -1
  16. package/dist/cjs/route.cjs.map +1 -1
  17. package/dist/cjs/route.d.cts +11 -11
  18. package/dist/cjs/router.cjs.map +1 -1
  19. package/dist/cjs/router.d.cts +2 -2
  20. package/dist/cjs/ssr/renderRouterToString.cjs +1 -0
  21. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  22. package/dist/cjs/useBlocker.cjs +1 -1
  23. package/dist/cjs/useBlocker.cjs.map +1 -1
  24. package/dist/cjs/useNavigate.cjs +3 -11
  25. package/dist/cjs/useNavigate.cjs.map +1 -1
  26. package/dist/cjs/useParams.cjs +3 -2
  27. package/dist/cjs/useParams.cjs.map +1 -1
  28. package/dist/esm/Asset.js +30 -1
  29. package/dist/esm/Asset.js.map +1 -1
  30. package/dist/esm/Matches.js +16 -12
  31. package/dist/esm/Matches.js.map +1 -1
  32. package/dist/esm/RouterProvider.js +9 -9
  33. package/dist/esm/RouterProvider.js.map +1 -1
  34. package/dist/esm/ScriptOnce.js +13 -3
  35. package/dist/esm/ScriptOnce.js.map +1 -1
  36. package/dist/esm/fileRoute.d.ts +3 -3
  37. package/dist/esm/fileRoute.js.map +1 -1
  38. package/dist/esm/index.d.ts +4 -2
  39. package/dist/esm/index.js +3 -2
  40. package/dist/esm/link.js +51 -32
  41. package/dist/esm/link.js.map +1 -1
  42. package/dist/esm/route.d.ts +11 -11
  43. package/dist/esm/route.js.map +1 -1
  44. package/dist/esm/router.d.ts +2 -2
  45. package/dist/esm/router.js.map +1 -1
  46. package/dist/esm/ssr/renderRouterToString.js +1 -0
  47. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  48. package/dist/esm/useBlocker.js +1 -1
  49. package/dist/esm/useBlocker.js.map +1 -1
  50. package/dist/esm/useNavigate.js +3 -11
  51. package/dist/esm/useNavigate.js.map +1 -1
  52. package/dist/esm/useParams.js +3 -2
  53. package/dist/esm/useParams.js.map +1 -1
  54. package/dist/source/Asset.jsx +33 -1
  55. package/dist/source/Asset.jsx.map +1 -1
  56. package/dist/source/Matches.jsx +11 -7
  57. package/dist/source/Matches.jsx.map +1 -1
  58. package/dist/source/RouterProvider.jsx +7 -7
  59. package/dist/source/RouterProvider.jsx.map +1 -1
  60. package/dist/source/ScriptOnce.jsx +4 -2
  61. package/dist/source/ScriptOnce.jsx.map +1 -1
  62. package/dist/source/fileRoute.d.ts +3 -3
  63. package/dist/source/fileRoute.js.map +1 -1
  64. package/dist/source/index.d.ts +4 -2
  65. package/dist/source/index.jsx +2 -1
  66. package/dist/source/index.jsx.map +1 -1
  67. package/dist/source/link.jsx +52 -42
  68. package/dist/source/link.jsx.map +1 -1
  69. package/dist/source/route.d.ts +11 -11
  70. package/dist/source/route.jsx.map +1 -1
  71. package/dist/source/router.d.ts +2 -2
  72. package/dist/source/router.js.map +1 -1
  73. package/dist/source/ssr/renderRouterToString.jsx +1 -0
  74. package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
  75. package/dist/source/useBlocker.jsx +1 -1
  76. package/dist/source/useBlocker.jsx.map +1 -1
  77. package/dist/source/useNavigate.jsx +3 -10
  78. package/dist/source/useNavigate.jsx.map +1 -1
  79. package/dist/source/useParams.jsx +3 -2
  80. package/dist/source/useParams.jsx.map +1 -1
  81. package/package.json +3 -3
  82. package/src/Asset.tsx +47 -1
  83. package/src/Matches.tsx +18 -16
  84. package/src/RouterProvider.tsx +9 -10
  85. package/src/ScriptOnce.tsx +5 -2
  86. package/src/fileRoute.ts +17 -2
  87. package/src/index.tsx +7 -4
  88. package/src/link.tsx +52 -46
  89. package/src/route.tsx +101 -17
  90. package/src/router.ts +2 -5
  91. package/src/ssr/renderRouterToString.tsx +1 -0
  92. package/src/useBlocker.tsx +1 -1
  93. package/src/useNavigate.tsx +3 -12
  94. package/src/useParams.tsx +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"useBlocker.jsx","sourceRoot":"","sources":["../../src/useBlocker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBlocker.jsx","sourceRoot":"","sources":["../../src/useBlocker.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,11 @@
1
1
  import * as Solid from 'solid-js';
2
2
  import { useRouter } from './useRouter';
3
- import { useMatch } from './useMatch';
4
3
  export function useNavigate(_defaultOpts) {
5
- const { navigate, state } = useRouter();
6
- const matchIndex = useMatch({
7
- strict: false,
8
- select: (match) => match.index,
9
- });
4
+ const router = useRouter();
10
5
  return ((options) => {
11
- return navigate({
6
+ return router.navigate({
12
7
  ...options,
13
- from: options.from ??
14
- _defaultOpts?.from ??
15
- state.matches[matchIndex()].fullPath,
8
+ from: options.from ?? _defaultOpts?.from,
16
9
  });
17
10
  });
18
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigate.jsx","sourceRoot":"","sources":["../../src/useNavigate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,MAAM,UAAU,WAAW,CAGzB,YAED;IACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAA;IAEvC,MAAM,UAAU,GAAG,QAAQ,CAAC;QAC1B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;KAC/B,CAAC,CAAA;IAEF,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;QACnC,OAAO,QAAQ,CAAC;YACd,GAAG,OAAO;YACV,IAAI,EACF,OAAO,CAAC,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAE,CAAC,QAAQ;SACxC,CAAC,CAAA;IACJ,CAAC,CAAoC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAMtB,KAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAA;IAEhC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjB,QAAQ,CAAC;YACP,GAAG,KAAK;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"useNavigate.jsx","sourceRoot":"","sources":["../../src/useNavigate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AASvC,MAAM,UAAU,WAAW,CAGzB,YAED;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CAAC,CAAC,OAAwB,EAAE,EAAE;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC;YACrB,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI;SACzC,CAAC,CAAA;IACJ,CAAC,CAAoC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAMtB,KAA+D;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAA;IAEhC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjB,QAAQ,CAAC;YACP,GAAG,KAAK;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -2,10 +2,11 @@ import { useMatch } from './useMatch';
2
2
  export function useParams(opts) {
3
3
  return useMatch({
4
4
  from: opts.from,
5
- strict: opts.strict,
6
5
  shouldThrow: opts.shouldThrow,
6
+ strict: opts.strict,
7
7
  select: (match) => {
8
- return opts.select ? opts.select(match.params) : match.params;
8
+ const params = opts.strict === false ? match.params : match._strictParams;
9
+ return opts.select ? opts.select(params) : params;
9
10
  },
10
11
  });
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useParams.jsx","sourceRoot":"","sources":["../../src/useParams.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/D,CAAC;KACK,CAAQ,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"useParams.jsx","sourceRoot":"","sources":["../../src/useParams.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAA;YAEzE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,CAAC;KACF,CAAkB,CAAA;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-router",
3
- "version": "1.132.0-alpha.4",
3
+ "version": "1.132.0",
4
4
  "description": "Modern and scalable routing for Solid applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -88,8 +88,8 @@
88
88
  "isbot": "^5.1.22",
89
89
  "tiny-invariant": "^1.3.3",
90
90
  "tiny-warning": "^1.0.3",
91
- "@tanstack/history": "1.132.0-alpha.1",
92
- "@tanstack/router-core": "1.132.0-alpha.4"
91
+ "@tanstack/router-core": "1.132.0",
92
+ "@tanstack/history": "1.132.0"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@solidjs/testing-library": "^0.8.10",
package/src/Asset.tsx CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Meta, Style, Title } from '@solidjs/meta'
2
2
  import { onCleanup, onMount } from 'solid-js'
3
+ import { useRouter } from './useRouter'
3
4
  import type { RouterManagedTag } from '@tanstack/router-core'
4
5
  import type { JSX } from 'solid-js'
5
6
 
@@ -36,8 +37,26 @@ function Script({
36
37
  attrs?: ScriptAttrs
37
38
  children?: string
38
39
  }): JSX.Element | null {
40
+ const router = useRouter()
41
+
39
42
  onMount(() => {
40
43
  if (attrs?.src) {
44
+ const normSrc = (() => {
45
+ try {
46
+ const base = document.baseURI || window.location.href
47
+ return new URL(attrs.src, base).href
48
+ } catch {
49
+ return attrs.src
50
+ }
51
+ })()
52
+ const existingScript = Array.from(
53
+ document.querySelectorAll('script[src]'),
54
+ ).find((el) => (el as HTMLScriptElement).src === normSrc)
55
+
56
+ if (existingScript) {
57
+ return
58
+ }
59
+
41
60
  const script = document.createElement('script')
42
61
 
43
62
  for (const [key, value] of Object.entries(attrs)) {
@@ -56,7 +75,30 @@ function Script({
56
75
  script.parentNode.removeChild(script)
57
76
  }
58
77
  })
59
- } else if (typeof children === 'string') {
78
+ }
79
+
80
+ if (typeof children === 'string') {
81
+ const typeAttr =
82
+ typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'
83
+ const nonceAttr =
84
+ typeof attrs?.nonce === 'string' ? attrs.nonce : undefined
85
+ const existingScript = Array.from(
86
+ document.querySelectorAll('script:not([src])'),
87
+ ).find((el) => {
88
+ if (!(el instanceof HTMLScriptElement)) return false
89
+ const sType = el.getAttribute('type') ?? 'text/javascript'
90
+ const sNonce = el.getAttribute('nonce') ?? undefined
91
+ return (
92
+ el.textContent === children &&
93
+ sType === typeAttr &&
94
+ sNonce === nonceAttr
95
+ )
96
+ })
97
+
98
+ if (existingScript) {
99
+ return
100
+ }
101
+
60
102
  const script = document.createElement('script')
61
103
  script.textContent = children
62
104
 
@@ -81,6 +123,10 @@ function Script({
81
123
  }
82
124
  })
83
125
 
126
+ if (router && !router.isServer) {
127
+ return null
128
+ }
129
+
84
130
  if (attrs?.src && typeof attrs.src === 'string') {
85
131
  return <script {...attrs} />
86
132
  }
package/src/Matches.tsx CHANGED
@@ -38,27 +38,27 @@ declare module '@tanstack/router-core' {
38
38
  export function Matches() {
39
39
  const router = useRouter()
40
40
 
41
- const pendingElement = router.options.defaultPendingComponent ? (
42
- <router.options.defaultPendingComponent />
43
- ) : null
44
-
45
41
  // Do not render a root Suspense during SSR or hydrating from SSR
46
42
  const ResolvedSuspense =
47
43
  router.isServer || (typeof document !== 'undefined' && router.ssr)
48
44
  ? SafeFragment
49
45
  : Solid.Suspense
50
46
 
51
- const inner = (
52
- <ResolvedSuspense fallback={pendingElement}>
53
- {!router.isServer && <Transitioner />}
54
- <MatchesInner />
55
- </ResolvedSuspense>
56
- )
47
+ const OptionalWrapper = router.options.InnerWrap || SafeFragment
57
48
 
58
- return router.options.InnerWrap ? (
59
- <router.options.InnerWrap>{inner}</router.options.InnerWrap>
60
- ) : (
61
- inner
49
+ return (
50
+ <OptionalWrapper>
51
+ <ResolvedSuspense
52
+ fallback={
53
+ router.options.defaultPendingComponent ? (
54
+ <router.options.defaultPendingComponent />
55
+ ) : null
56
+ }
57
+ >
58
+ {!router.isServer && <Transitioner />}
59
+ <MatchesInner />
60
+ </ResolvedSuspense>
61
+ </OptionalWrapper>
62
62
  )
63
63
  }
64
64
 
@@ -74,8 +74,10 @@ function MatchesInner() {
74
74
  select: (s) => s.loadedAt,
75
75
  })
76
76
 
77
- const matchComponent = () =>
78
- matchId() ? <Match matchId={matchId()!} /> : null
77
+ const matchComponent = () => {
78
+ const id = matchId()
79
+ return id ? <Match matchId={id} /> : null
80
+ }
79
81
 
80
82
  return (
81
83
  <matchContext.Provider value={matchId}>
@@ -1,5 +1,6 @@
1
1
  import { Matches } from './Matches'
2
2
  import { getRouterContext } from './routerContext'
3
+ import { SafeFragment } from './SafeFragment'
3
4
  import type * as Solid from 'solid-js'
4
5
  import type {
5
6
  AnyRouter,
@@ -29,17 +30,15 @@ export function RouterContextProvider<
29
30
 
30
31
  const routerContext = getRouterContext()
31
32
 
32
- const provider = (
33
- <routerContext.Provider value={router as AnyRouter}>
34
- {children()}
35
- </routerContext.Provider>
36
- )
37
-
38
- if (router.options.Wrap) {
39
- return <router.options.Wrap>{provider}</router.options.Wrap>
40
- }
33
+ const OptionalWrapper = router.options.Wrap || SafeFragment
41
34
 
42
- return provider
35
+ return (
36
+ <OptionalWrapper>
37
+ <routerContext.Provider value={router as AnyRouter}>
38
+ {children()}
39
+ </routerContext.Provider>
40
+ </OptionalWrapper>
41
+ )
43
42
  }
44
43
 
45
44
  export function RouterProvider<
@@ -1,3 +1,5 @@
1
+ import { useRouter } from './useRouter'
2
+
1
3
  export function ScriptOnce({
2
4
  children,
3
5
  }: {
@@ -5,12 +7,13 @@ export function ScriptOnce({
5
7
  log?: boolean
6
8
  sync?: boolean
7
9
  }) {
8
- if (typeof document !== 'undefined') {
10
+ const router = useRouter()
11
+ if (!router.isServer) {
9
12
  return null
10
13
  }
11
-
12
14
  return (
13
15
  <script
16
+ nonce={router.options.ssr?.nonce}
14
17
  class="$tsr"
15
18
  innerHTML={[children].filter(Boolean).join('\n') + ';$_TSR.c()'}
16
19
  />
package/src/fileRoute.ts CHANGED
@@ -20,6 +20,7 @@ import type {
20
20
  FileBaseRouteOptions,
21
21
  FileRoutesByPath,
22
22
  LazyRouteOptions,
23
+ Register,
23
24
  RegisteredRouter,
24
25
  ResolveParams,
25
26
  Route,
@@ -76,6 +77,7 @@ export class FileRoute<
76
77
  }
77
78
 
78
79
  createRoute = <
80
+ TRegister = Register,
79
81
  TSearchValidator = undefined,
80
82
  TParams = ResolveParams<TPath>,
81
83
  TRouteContextFn = AnyContext,
@@ -83,8 +85,12 @@ export class FileRoute<
83
85
  TLoaderDeps extends Record<string, any> = {},
84
86
  TLoaderFn = undefined,
85
87
  TChildren = unknown,
88
+ TSSR = unknown,
89
+ TMiddlewares = unknown,
90
+ THandlers = undefined,
86
91
  >(
87
92
  options?: FileBaseRouteOptions<
93
+ TRegister,
88
94
  TParentRoute,
89
95
  TId,
90
96
  TPath,
@@ -94,7 +100,11 @@ export class FileRoute<
94
100
  TLoaderFn,
95
101
  AnyContext,
96
102
  TRouteContextFn,
97
- TBeforeLoadFn
103
+ TBeforeLoadFn,
104
+ AnyContext,
105
+ TSSR,
106
+ TMiddlewares,
107
+ THandlers
98
108
  > &
99
109
  UpdatableRouteOptions<
100
110
  TParentRoute,
@@ -109,6 +119,7 @@ export class FileRoute<
109
119
  TBeforeLoadFn
110
120
  >,
111
121
  ): Route<
122
+ TRegister,
112
123
  TParentRoute,
113
124
  TPath,
114
125
  TFullPath,
@@ -122,7 +133,10 @@ export class FileRoute<
122
133
  TLoaderDeps,
123
134
  TLoaderFn,
124
135
  TChildren,
125
- unknown
136
+ unknown,
137
+ TSSR,
138
+ TMiddlewares,
139
+ THandlers
126
140
  > => {
127
141
  warning(
128
142
  this.silent,
@@ -148,6 +162,7 @@ export function FileRouteLoader<
148
162
  loaderFn: Constrain<
149
163
  TLoaderFn,
150
164
  RouteLoaderFn<
165
+ Register,
151
166
  TRoute['parentRoute'],
152
167
  TRoute['types']['id'],
153
168
  TRoute['types']['params'],
package/src/index.tsx CHANGED
@@ -11,7 +11,6 @@ export {
11
11
  parsePathname,
12
12
  interpolatePath,
13
13
  matchPathname,
14
- removeBasepath,
15
14
  matchByPath,
16
15
  rootRouteId,
17
16
  defaultSerializeError,
@@ -164,7 +163,6 @@ export type {
164
163
  AnyRouteMatch,
165
164
  RouteContextFn,
166
165
  RouteContextOptions,
167
- BeforeLoadFn,
168
166
  BeforeLoadContextOptions,
169
167
  ContextOptions,
170
168
  RootRouteOptions,
@@ -190,8 +188,8 @@ export type {
190
188
  InjectedHtmlEntry,
191
189
  CreateFileRoute,
192
190
  CreateLazyFileRoute,
193
- Transformer,
194
- AnyTransformer,
191
+ AnySerializationAdapter,
192
+ SerializationAdapter,
195
193
  } from '@tanstack/router-core'
196
194
 
197
195
  export {
@@ -354,3 +352,8 @@ export { ScriptOnce } from './ScriptOnce'
354
352
  export { Asset } from './Asset'
355
353
  export { HeadContent, useTags } from './HeadContent'
356
354
  export { Scripts } from './Scripts'
355
+ export { rewriteBasepath, composeRewrites } from '@tanstack/router-core'
356
+ export type {
357
+ LocationRewrite,
358
+ LocationRewriteFunction,
359
+ } from '@tanstack/router-core'
package/src/link.tsx CHANGED
@@ -15,7 +15,6 @@ import { useRouter } from './useRouter'
15
15
 
16
16
  import { useIntersectionObserver } from './utils'
17
17
 
18
- import { useMatch } from './useMatch'
19
18
  import type {
20
19
  AnyRouter,
21
20
  Constrain,
@@ -115,43 +114,60 @@ export function useLinkProps<
115
114
  'unsafeRelative',
116
115
  ])
117
116
 
118
- // If this link simply reloads the current route,
119
- // make sure it has a new key so it will trigger a data refresh
120
-
121
- // If this `to` is a valid external URL, return
122
- // null for LinkUtils
123
-
124
- const type: Solid.Accessor<'internal' | 'external'> = () => {
125
- try {
126
- new URL(`${local.to}`)
127
- return 'external'
128
- } catch {}
129
- return 'internal'
130
- }
131
-
132
117
  const currentSearch = useRouterState({
133
118
  select: (s) => s.location.searchStr,
134
119
  })
135
120
 
136
- // when `from` is not supplied, use the route of the current match as the `from` location
137
- // so relative routing works as expected
138
- const from = useMatch({
139
- strict: false,
140
- select: (match) => options.from ?? match.fullPath,
141
- })
121
+ const from = options.from
142
122
 
143
- const _options = () => ({
144
- ...options,
145
- from: from(),
146
- })
123
+ const _options = () => {
124
+ return {
125
+ ...options,
126
+ from,
127
+ }
128
+ }
147
129
 
148
130
  const next = Solid.createMemo(() => {
149
131
  currentSearch()
150
132
  return router.buildLocation(_options() as any)
151
133
  })
152
134
 
135
+ const hrefOption = Solid.createMemo(() => {
136
+ if (_options().disabled) {
137
+ return undefined
138
+ }
139
+ let href
140
+ const maskedLocation = next().maskedLocation
141
+ if (maskedLocation) {
142
+ href = maskedLocation.url
143
+ } else {
144
+ href = next().url
145
+ }
146
+ let external = false
147
+ if (router.origin) {
148
+ if (href.startsWith(router.origin)) {
149
+ href = href.replace(router.origin, '')
150
+ } else {
151
+ external = true
152
+ }
153
+ }
154
+ return { href, external }
155
+ })
156
+
157
+ const externalLink = Solid.createMemo(() => {
158
+ const _href = hrefOption()
159
+ if (_href?.external) {
160
+ return _href.href
161
+ }
162
+ try {
163
+ new URL(_options().to as any)
164
+ return _options().to
165
+ } catch {}
166
+ return undefined
167
+ })
168
+
153
169
  const preload = Solid.createMemo(() => {
154
- if (_options().reloadDocument) {
170
+ if (_options().reloadDocument || externalLink()) {
155
171
  return false
156
172
  }
157
173
  return local.preload ?? router.options.defaultPreload
@@ -161,6 +177,7 @@ export function useLinkProps<
161
177
 
162
178
  const isActive = useRouterState({
163
179
  select: (s) => {
180
+ if (externalLink()) return false
164
181
  if (local.activeOptions?.exact) {
165
182
  const testExact = exactPathTest(
166
183
  s.location.pathname,
@@ -238,17 +255,12 @@ export function useLinkProps<
238
255
  }
239
256
  })
240
257
 
241
- if (type() === 'external') {
258
+ if (externalLink()) {
242
259
  return Solid.mergeProps(
243
260
  propsSafeToSpread,
244
261
  {
245
262
  ref,
246
- get type() {
247
- return type()
248
- },
249
- get href() {
250
- return local.to
251
- },
263
+ href: externalLink,
252
264
  },
253
265
  Solid.splitProps(local, [
254
266
  'target',
@@ -268,11 +280,16 @@ export function useLinkProps<
268
280
 
269
281
  // The click handler
270
282
  const handleClick = (e: MouseEvent) => {
283
+ // Check actual element's target attribute as fallback
284
+ const elementTarget = (e.currentTarget as HTMLAnchorElement).target
285
+ const effectiveTarget =
286
+ local.target !== undefined ? local.target : elementTarget
287
+
271
288
  if (
272
289
  !local.disabled &&
273
290
  !isCtrlEvent(e) &&
274
291
  !e.defaultPrevented &&
275
- (!local.target || local.target === '_self') &&
292
+ (!effectiveTarget || effectiveTarget === '_self') &&
276
293
  e.button === 0
277
294
  ) {
278
295
  e.preventDefault()
@@ -384,24 +401,13 @@ export function useLinkProps<
384
401
  ...resolvedInactiveProps().style,
385
402
  })
386
403
 
387
- const href = Solid.createMemo(() => {
388
- const nextLocation = next()
389
- const maskedLocation = nextLocation?.maskedLocation
390
-
391
- return _options().disabled
392
- ? undefined
393
- : maskedLocation
394
- ? router.history.createHref(maskedLocation.href)
395
- : router.history.createHref(nextLocation?.href)
396
- })
397
-
398
404
  return Solid.mergeProps(
399
405
  propsSafeToSpread,
400
406
  resolvedActiveProps,
401
407
  resolvedInactiveProps,
402
408
  () => {
403
409
  return {
404
- href: href(),
410
+ href: hrefOption()?.href,
405
411
  ref: mergeRefs(setRef, _options().ref),
406
412
  onClick: composeEventHandlers([local.onClick, handleClick]),
407
413
  onFocus: composeEventHandlers([local.onFocus, handleFocus]),