@tanstack/react-router 1.121.16 → 1.121.18
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.
- package/package.json +3 -3
- package/dist/cjs/Asset.cjs +0 -41
- package/dist/cjs/Asset.cjs.map +0 -1
- package/dist/cjs/Asset.d.cts +0 -2
- package/dist/cjs/CatchBoundary.cjs +0 -114
- package/dist/cjs/CatchBoundary.cjs.map +0 -1
- package/dist/cjs/CatchBoundary.d.cts +0 -12
- package/dist/cjs/ClientOnly.cjs +0 -20
- package/dist/cjs/ClientOnly.cjs.map +0 -1
- package/dist/cjs/ClientOnly.d.cts +0 -29
- package/dist/cjs/HeadContent.cjs +0 -155
- package/dist/cjs/HeadContent.cjs.map +0 -1
- package/dist/cjs/HeadContent.d.cts +0 -7
- package/dist/cjs/Match.cjs +0 -257
- package/dist/cjs/Match.cjs.map +0 -1
- package/dist/cjs/Match.d.cts +0 -8
- package/dist/cjs/Matches.cjs +0 -136
- package/dist/cjs/Matches.cjs.map +0 -1
- package/dist/cjs/Matches.d.cts +0 -26
- package/dist/cjs/RouterProvider.cjs +0 -33
- package/dist/cjs/RouterProvider.cjs.map +0 -1
- package/dist/cjs/RouterProvider.d.cts +0 -10
- package/dist/cjs/SafeFragment.cjs +0 -8
- package/dist/cjs/SafeFragment.cjs.map +0 -1
- package/dist/cjs/SafeFragment.d.cts +0 -1
- package/dist/cjs/ScriptOnce.cjs +0 -28
- package/dist/cjs/ScriptOnce.cjs.map +0 -1
- package/dist/cjs/ScriptOnce.d.cts +0 -5
- package/dist/cjs/Scripts.cjs +0 -51
- package/dist/cjs/Scripts.cjs.map +0 -1
- package/dist/cjs/Scripts.d.cts +0 -1
- package/dist/cjs/ScrollRestoration.cjs +0 -39
- package/dist/cjs/ScrollRestoration.cjs.map +0 -1
- package/dist/cjs/ScrollRestoration.d.cts +0 -14
- package/dist/cjs/Transitioner.cjs +0 -115
- package/dist/cjs/Transitioner.cjs.map +0 -1
- package/dist/cjs/Transitioner.d.cts +0 -1
- package/dist/cjs/awaited.cjs +0 -48
- package/dist/cjs/awaited.cjs.map +0 -1
- package/dist/cjs/awaited.d.cts +0 -10
- package/dist/cjs/fileRoute.cjs +0 -107
- package/dist/cjs/fileRoute.cjs.map +0 -1
- package/dist/cjs/fileRoute.d.cts +0 -54
- package/dist/cjs/history.d.cts +0 -8
- package/dist/cjs/index.cjs +0 -289
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.d.cts +0 -55
- package/dist/cjs/lazyRouteComponent.cjs +0 -78
- package/dist/cjs/lazyRouteComponent.cjs.map +0 -1
- package/dist/cjs/lazyRouteComponent.d.cts +0 -2
- package/dist/cjs/link.cjs +0 -324
- package/dist/cjs/link.cjs.map +0 -1
- package/dist/cjs/link.d.cts +0 -48
- package/dist/cjs/matchContext.cjs +0 -27
- package/dist/cjs/matchContext.cjs.map +0 -1
- package/dist/cjs/matchContext.d.cts +0 -3
- package/dist/cjs/not-found.cjs +0 -40
- package/dist/cjs/not-found.cjs.map +0 -1
- package/dist/cjs/not-found.d.cts +0 -9
- package/dist/cjs/renderRouteNotFound.cjs +0 -22
- package/dist/cjs/renderRouteNotFound.cjs.map +0 -1
- package/dist/cjs/renderRouteNotFound.d.cts +0 -2
- package/dist/cjs/route.cjs +0 -205
- package/dist/cjs/route.cjs.map +0 -1
- package/dist/cjs/route.d.cts +0 -95
- package/dist/cjs/router.cjs +0 -22
- package/dist/cjs/router.cjs.map +0 -1
- package/dist/cjs/router.d.cts +0 -72
- package/dist/cjs/routerContext.cjs +0 -33
- package/dist/cjs/routerContext.cjs.map +0 -1
- package/dist/cjs/routerContext.d.cts +0 -8
- package/dist/cjs/scroll-restoration.cjs +0 -24
- package/dist/cjs/scroll-restoration.cjs.map +0 -1
- package/dist/cjs/scroll-restoration.d.cts +0 -1
- package/dist/cjs/serializer.d.cts +0 -6
- package/dist/cjs/structuralSharing.d.cts +0 -8
- package/dist/cjs/typePrimitives.d.cts +0 -16
- package/dist/cjs/useBlocker.cjs +0 -165
- package/dist/cjs/useBlocker.cjs.map +0 -1
- package/dist/cjs/useBlocker.d.cts +0 -66
- package/dist/cjs/useCanGoBack.cjs +0 -8
- package/dist/cjs/useCanGoBack.cjs.map +0 -1
- package/dist/cjs/useCanGoBack.d.cts +0 -1
- package/dist/cjs/useLoaderData.cjs +0 -15
- package/dist/cjs/useLoaderData.cjs.map +0 -1
- package/dist/cjs/useLoaderData.d.cts +0 -8
- package/dist/cjs/useLoaderDeps.cjs +0 -14
- package/dist/cjs/useLoaderDeps.cjs.map +0 -1
- package/dist/cjs/useLoaderDeps.d.cts +0 -8
- package/dist/cjs/useLocation.cjs +0 -10
- package/dist/cjs/useLocation.cjs.map +0 -1
- package/dist/cjs/useLocation.d.cts +0 -7
- package/dist/cjs/useMatch.cjs +0 -47
- package/dist/cjs/useMatch.cjs.map +0 -1
- package/dist/cjs/useMatch.d.cts +0 -10
- package/dist/cjs/useNavigate.cjs +0 -55
- package/dist/cjs/useNavigate.cjs.map +0 -1
- package/dist/cjs/useNavigate.d.cts +0 -5
- package/dist/cjs/useParams.cjs +0 -16
- package/dist/cjs/useParams.cjs.map +0 -1
- package/dist/cjs/useParams.d.cts +0 -9
- package/dist/cjs/useRouteContext.cjs +0 -11
- package/dist/cjs/useRouteContext.cjs.map +0 -1
- package/dist/cjs/useRouteContext.d.cts +0 -3
- package/dist/cjs/useRouter.cjs +0 -32
- package/dist/cjs/useRouter.cjs.map +0 -1
- package/dist/cjs/useRouter.d.cts +0 -4
- package/dist/cjs/useRouterState.cjs +0 -29
- package/dist/cjs/useRouterState.cjs.map +0 -1
- package/dist/cjs/useRouterState.d.cts +0 -8
- package/dist/cjs/useSearch.cjs +0 -16
- package/dist/cjs/useSearch.cjs.map +0 -1
- package/dist/cjs/useSearch.d.cts +0 -9
- package/dist/cjs/utils.cjs +0 -72
- package/dist/cjs/utils.cjs.map +0 -1
- package/dist/cjs/utils.d.cts +0 -49
- package/dist/esm/Asset.d.ts +0 -2
- package/dist/esm/Asset.js +0 -41
- package/dist/esm/Asset.js.map +0 -1
- package/dist/esm/CatchBoundary.d.ts +0 -12
- package/dist/esm/CatchBoundary.js +0 -97
- package/dist/esm/CatchBoundary.js.map +0 -1
- package/dist/esm/ClientOnly.d.ts +0 -29
- package/dist/esm/ClientOnly.js +0 -20
- package/dist/esm/ClientOnly.js.map +0 -1
- package/dist/esm/HeadContent.d.ts +0 -7
- package/dist/esm/HeadContent.js +0 -139
- package/dist/esm/HeadContent.js.map +0 -1
- package/dist/esm/Match.d.ts +0 -8
- package/dist/esm/Match.js +0 -240
- package/dist/esm/Match.js.map +0 -1
- package/dist/esm/Matches.d.ts +0 -26
- package/dist/esm/Matches.js +0 -119
- package/dist/esm/Matches.js.map +0 -1
- package/dist/esm/RouterProvider.d.ts +0 -10
- package/dist/esm/RouterProvider.js +0 -33
- package/dist/esm/RouterProvider.js.map +0 -1
- package/dist/esm/SafeFragment.d.ts +0 -1
- package/dist/esm/SafeFragment.js +0 -8
- package/dist/esm/SafeFragment.js.map +0 -1
- package/dist/esm/ScriptOnce.d.ts +0 -5
- package/dist/esm/ScriptOnce.js +0 -28
- package/dist/esm/ScriptOnce.js.map +0 -1
- package/dist/esm/Scripts.d.ts +0 -1
- package/dist/esm/Scripts.js +0 -51
- package/dist/esm/Scripts.js.map +0 -1
- package/dist/esm/ScrollRestoration.d.ts +0 -14
- package/dist/esm/ScrollRestoration.js +0 -39
- package/dist/esm/ScrollRestoration.js.map +0 -1
- package/dist/esm/Transitioner.d.ts +0 -1
- package/dist/esm/Transitioner.js +0 -98
- package/dist/esm/Transitioner.js.map +0 -1
- package/dist/esm/awaited.d.ts +0 -10
- package/dist/esm/awaited.js +0 -31
- package/dist/esm/awaited.js.map +0 -1
- package/dist/esm/fileRoute.d.ts +0 -54
- package/dist/esm/fileRoute.js +0 -107
- package/dist/esm/fileRoute.js.map +0 -1
- package/dist/esm/history.d.ts +0 -8
- package/dist/esm/index.d.ts +0 -55
- package/dist/esm/index.js +0 -151
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lazyRouteComponent.d.ts +0 -2
- package/dist/esm/lazyRouteComponent.js +0 -61
- package/dist/esm/lazyRouteComponent.js.map +0 -1
- package/dist/esm/link.d.ts +0 -48
- package/dist/esm/link.js +0 -307
- package/dist/esm/link.js.map +0 -1
- package/dist/esm/matchContext.d.ts +0 -3
- package/dist/esm/matchContext.js +0 -10
- package/dist/esm/matchContext.js.map +0 -1
- package/dist/esm/not-found.d.ts +0 -9
- package/dist/esm/not-found.js +0 -40
- package/dist/esm/not-found.js.map +0 -1
- package/dist/esm/renderRouteNotFound.d.ts +0 -2
- package/dist/esm/renderRouteNotFound.js +0 -22
- package/dist/esm/renderRouteNotFound.js.map +0 -1
- package/dist/esm/route.d.ts +0 -95
- package/dist/esm/route.js +0 -205
- package/dist/esm/route.js.map +0 -1
- package/dist/esm/router.d.ts +0 -72
- package/dist/esm/router.js +0 -22
- package/dist/esm/router.js.map +0 -1
- package/dist/esm/routerContext.d.ts +0 -8
- package/dist/esm/routerContext.js +0 -16
- package/dist/esm/routerContext.js.map +0 -1
- package/dist/esm/scroll-restoration.d.ts +0 -1
- package/dist/esm/scroll-restoration.js +0 -24
- package/dist/esm/scroll-restoration.js.map +0 -1
- package/dist/esm/serializer.d.ts +0 -6
- package/dist/esm/structuralSharing.d.ts +0 -8
- package/dist/esm/typePrimitives.d.ts +0 -16
- package/dist/esm/useBlocker.d.ts +0 -66
- package/dist/esm/useBlocker.js +0 -148
- package/dist/esm/useBlocker.js.map +0 -1
- package/dist/esm/useCanGoBack.d.ts +0 -1
- package/dist/esm/useCanGoBack.js +0 -8
- package/dist/esm/useCanGoBack.js.map +0 -1
- package/dist/esm/useLoaderData.d.ts +0 -8
- package/dist/esm/useLoaderData.js +0 -15
- package/dist/esm/useLoaderData.js.map +0 -1
- package/dist/esm/useLoaderDeps.d.ts +0 -8
- package/dist/esm/useLoaderDeps.js +0 -14
- package/dist/esm/useLoaderDeps.js.map +0 -1
- package/dist/esm/useLocation.d.ts +0 -7
- package/dist/esm/useLocation.js +0 -10
- package/dist/esm/useLocation.js.map +0 -1
- package/dist/esm/useMatch.d.ts +0 -10
- package/dist/esm/useMatch.js +0 -30
- package/dist/esm/useMatch.js.map +0 -1
- package/dist/esm/useNavigate.d.ts +0 -5
- package/dist/esm/useNavigate.js +0 -38
- package/dist/esm/useNavigate.js.map +0 -1
- package/dist/esm/useParams.d.ts +0 -9
- package/dist/esm/useParams.js +0 -16
- package/dist/esm/useParams.js.map +0 -1
- package/dist/esm/useRouteContext.d.ts +0 -3
- package/dist/esm/useRouteContext.js +0 -11
- package/dist/esm/useRouteContext.js.map +0 -1
- package/dist/esm/useRouter.d.ts +0 -4
- package/dist/esm/useRouter.js +0 -15
- package/dist/esm/useRouter.js.map +0 -1
- package/dist/esm/useRouterState.d.ts +0 -8
- package/dist/esm/useRouterState.js +0 -29
- package/dist/esm/useRouterState.js.map +0 -1
- package/dist/esm/useSearch.d.ts +0 -9
- package/dist/esm/useSearch.js +0 -16
- package/dist/esm/useSearch.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -49
- package/dist/esm/utils.js +0 -55
- package/dist/esm/utils.js.map +0 -1
- package/dist/llms/index.d.ts +0 -3
- package/dist/llms/index.js +0 -35
- package/dist/llms/rules/api.d.ts +0 -2
- package/dist/llms/rules/api.js +0 -4241
- package/dist/llms/rules/guide.d.ts +0 -2
- package/dist/llms/rules/guide.js +0 -6225
- package/dist/llms/rules/routing.d.ts +0 -2
- package/dist/llms/rules/routing.js +0 -1946
- package/dist/llms/rules/setup-and-architecture.d.ts +0 -2
- package/dist/llms/rules/setup-and-architecture.js +0 -932
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/react-router",
|
|
3
|
-
"version": "1.121.
|
|
3
|
+
"version": "1.121.18",
|
|
4
4
|
"description": "Modern and scalable routing for React applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"jsesc": "^3.1.0",
|
|
60
60
|
"tiny-invariant": "^1.3.3",
|
|
61
61
|
"tiny-warning": "^1.0.3",
|
|
62
|
-
"@tanstack/history": "1.
|
|
63
|
-
"@tanstack/router-core": "1.121.
|
|
62
|
+
"@tanstack/history": "1.121.18",
|
|
63
|
+
"@tanstack/router-core": "1.121.18"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@testing-library/jest-dom": "^6.6.3",
|
package/dist/cjs/Asset.cjs
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
function Asset({ tag, attrs, children }) {
|
|
5
|
-
switch (tag) {
|
|
6
|
-
case "title":
|
|
7
|
-
return /* @__PURE__ */ jsxRuntime.jsx("title", { ...attrs, suppressHydrationWarning: true, children });
|
|
8
|
-
case "meta":
|
|
9
|
-
return /* @__PURE__ */ jsxRuntime.jsx("meta", { ...attrs, suppressHydrationWarning: true });
|
|
10
|
-
case "link":
|
|
11
|
-
return /* @__PURE__ */ jsxRuntime.jsx("link", { ...attrs, suppressHydrationWarning: true });
|
|
12
|
-
case "style":
|
|
13
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14
|
-
"style",
|
|
15
|
-
{
|
|
16
|
-
...attrs,
|
|
17
|
-
dangerouslySetInnerHTML: { __html: children }
|
|
18
|
-
}
|
|
19
|
-
);
|
|
20
|
-
case "script":
|
|
21
|
-
if (attrs && attrs.src) {
|
|
22
|
-
return /* @__PURE__ */ jsxRuntime.jsx("script", { ...attrs, suppressHydrationWarning: true });
|
|
23
|
-
}
|
|
24
|
-
if (typeof children === "string")
|
|
25
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26
|
-
"script",
|
|
27
|
-
{
|
|
28
|
-
...attrs,
|
|
29
|
-
dangerouslySetInnerHTML: {
|
|
30
|
-
__html: children
|
|
31
|
-
},
|
|
32
|
-
suppressHydrationWarning: true
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
return null;
|
|
36
|
-
default:
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.Asset = Asset;
|
|
41
|
-
//# sourceMappingURL=Asset.cjs.map
|
package/dist/cjs/Asset.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return (\n <title {...attrs} suppressHydrationWarning>\n {children}\n </title>\n )\n case 'meta':\n return <meta {...attrs} suppressHydrationWarning />\n case 'link':\n return <link {...attrs} suppressHydrationWarning />\n case 'style':\n return (\n <style\n {...attrs}\n dangerouslySetInnerHTML={{ __html: children as any }}\n />\n )\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} suppressHydrationWarning />\n }\n if (typeof children === 'string')\n return (\n <script\n {...attrs}\n dangerouslySetInnerHTML={{\n __html: children,\n }}\n suppressHydrationWarning\n />\n )\n return null\n default:\n return null\n }\n}\n"],"names":["jsx"],"mappings":";;;AAEO,SAAS,MAAM,EAAE,KAAK,OAAO,YAAmC;AACrE,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,4CACG,SAAO,EAAA,GAAG,OAAO,0BAAwB,MACvC,UACH;AAAA,IAEJ,KAAK;AACH,aAAQA,2BAAAA,IAAA,QAAA,EAAM,GAAG,OAAO,0BAAwB,MAAC;AAAA,IACnD,KAAK;AACH,aAAQA,2BAAAA,IAAA,QAAA,EAAM,GAAG,OAAO,0BAAwB,MAAC;AAAA,IACnD,KAAK;AAED,aAAAA,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ,yBAAyB,EAAE,QAAQ,SAAgB;AAAA,QAAA;AAAA,MACrD;AAAA,IAEJ,KAAK;AACE,UAAA,SAAkB,MAAc,KAAK;AACxC,eAAQA,2BAAAA,IAAA,UAAA,EAAQ,GAAG,OAAO,0BAAwB,MAAC;AAAA,MAAA;AAErD,UAAI,OAAO,aAAa;AAEpB,eAAAA,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,yBAAyB;AAAA,cACvB,QAAQ;AAAA,YACV;AAAA,YACA,0BAAwB;AAAA,UAAA;AAAA,QAC1B;AAEG,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;;"}
|
package/dist/cjs/Asset.d.cts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const React = require("react");
|
|
5
|
-
function _interopNamespaceDefault(e) {
|
|
6
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
7
|
-
if (e) {
|
|
8
|
-
for (const k in e) {
|
|
9
|
-
if (k !== "default") {
|
|
10
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
11
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: () => e[k]
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
n.default = e;
|
|
19
|
-
return Object.freeze(n);
|
|
20
|
-
}
|
|
21
|
-
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
22
|
-
function CatchBoundary(props) {
|
|
23
|
-
const errorComponent = props.errorComponent ?? ErrorComponent;
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25
|
-
CatchBoundaryImpl,
|
|
26
|
-
{
|
|
27
|
-
getResetKey: props.getResetKey,
|
|
28
|
-
onCatch: props.onCatch,
|
|
29
|
-
children: ({ error, reset }) => {
|
|
30
|
-
if (error) {
|
|
31
|
-
return React__namespace.createElement(errorComponent, {
|
|
32
|
-
error,
|
|
33
|
-
reset
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return props.children;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
class CatchBoundaryImpl extends React__namespace.Component {
|
|
42
|
-
constructor() {
|
|
43
|
-
super(...arguments);
|
|
44
|
-
this.state = { error: null };
|
|
45
|
-
}
|
|
46
|
-
static getDerivedStateFromProps(props) {
|
|
47
|
-
return { resetKey: props.getResetKey() };
|
|
48
|
-
}
|
|
49
|
-
static getDerivedStateFromError(error) {
|
|
50
|
-
return { error };
|
|
51
|
-
}
|
|
52
|
-
reset() {
|
|
53
|
-
this.setState({ error: null });
|
|
54
|
-
}
|
|
55
|
-
componentDidUpdate(prevProps, prevState) {
|
|
56
|
-
if (prevState.error && prevState.resetKey !== this.state.resetKey) {
|
|
57
|
-
this.reset();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
componentDidCatch(error, errorInfo) {
|
|
61
|
-
if (this.props.onCatch) {
|
|
62
|
-
this.props.onCatch(error, errorInfo);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
render() {
|
|
66
|
-
return this.props.children({
|
|
67
|
-
error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,
|
|
68
|
-
reset: () => {
|
|
69
|
-
this.reset();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function ErrorComponent({ error }) {
|
|
75
|
-
const [show, setShow] = React__namespace.useState(process.env.NODE_ENV !== "production");
|
|
76
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { padding: ".5rem", maxWidth: "100%" }, children: [
|
|
77
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: ".5rem" }, children: [
|
|
78
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { style: { fontSize: "1rem" }, children: "Something went wrong!" }),
|
|
79
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
80
|
-
"button",
|
|
81
|
-
{
|
|
82
|
-
style: {
|
|
83
|
-
appearance: "none",
|
|
84
|
-
fontSize: ".6em",
|
|
85
|
-
border: "1px solid currentColor",
|
|
86
|
-
padding: ".1rem .2rem",
|
|
87
|
-
fontWeight: "bold",
|
|
88
|
-
borderRadius: ".25rem"
|
|
89
|
-
},
|
|
90
|
-
onClick: () => setShow((d) => !d),
|
|
91
|
-
children: show ? "Hide Error" : "Show Error"
|
|
92
|
-
}
|
|
93
|
-
)
|
|
94
|
-
] }),
|
|
95
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { height: ".25rem" } }),
|
|
96
|
-
show ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
"pre",
|
|
98
|
-
{
|
|
99
|
-
style: {
|
|
100
|
-
fontSize: ".7em",
|
|
101
|
-
border: "1px solid red",
|
|
102
|
-
borderRadius: ".25rem",
|
|
103
|
-
padding: ".3rem",
|
|
104
|
-
color: "red",
|
|
105
|
-
overflow: "auto"
|
|
106
|
-
},
|
|
107
|
-
children: error.message ? /* @__PURE__ */ jsxRuntime.jsx("code", { children: error.message }) : null
|
|
108
|
-
}
|
|
109
|
-
) }) : null
|
|
110
|
-
] });
|
|
111
|
-
}
|
|
112
|
-
exports.CatchBoundary = CatchBoundary;
|
|
113
|
-
exports.ErrorComponent = ErrorComponent;
|
|
114
|
-
//# sourceMappingURL=CatchBoundary.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CatchBoundary.cjs","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { ErrorRouteComponent } from './route'\nimport type { ErrorInfo } from 'react'\n\nexport function CatchBoundary(props: {\n getResetKey: () => number | string\n children: React.ReactNode\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error, errorInfo: ErrorInfo) => void\n}) {\n const errorComponent = props.errorComponent ?? ErrorComponent\n\n return (\n <CatchBoundaryImpl\n getResetKey={props.getResetKey}\n onCatch={props.onCatch}\n children={({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset,\n })\n }\n\n return props.children\n }}\n />\n )\n}\n\nclass CatchBoundaryImpl extends React.Component<{\n getResetKey: () => number | string\n children: (props: {\n error: Error | null\n reset: () => void\n }) => React.ReactNode\n onCatch?: (error: Error, errorInfo: ErrorInfo) => void\n}> {\n state = { error: null } as { error: Error | null; resetKey: string }\n static getDerivedStateFromProps(props: any) {\n return { resetKey: props.getResetKey() }\n }\n static getDerivedStateFromError(error: Error) {\n return { error }\n }\n reset() {\n this.setState({ error: null })\n }\n componentDidUpdate(\n prevProps: Readonly<{\n getResetKey: () => string\n children: (props: { error: any; reset: () => void }) => any\n onCatch?: ((error: any, info: any) => void) | undefined\n }>,\n prevState: any,\n ): void {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset()\n }\n }\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo)\n }\n }\n render() {\n // If the resetKey has changed, don't render the error\n return this.props.children({\n error:\n this.state.resetKey !== this.props.getResetKey()\n ? null\n : this.state.error,\n reset: () => {\n this.reset()\n },\n })\n }\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== 'production')\n\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '.5rem' }}>\n <strong style={{ fontSize: '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n fontSize: '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show ? (\n <div>\n <pre\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["jsx","React","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,cAAc,OAK3B;AACK,QAAA,iBAAiB,MAAM,kBAAkB;AAG7C,SAAAA,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAa,MAAM;AAAA,MACnB,SAAS,MAAM;AAAA,MACf,UAAU,CAAC,EAAE,OAAO,YAAY;AAC9B,YAAI,OAAO;AACF,iBAAAC,iBAAM,cAAc,gBAAgB;AAAA,YACzC;AAAA,YACA;AAAA,UAAA,CACD;AAAA,QAAA;AAGH,eAAO,MAAM;AAAA,MAAA;AAAA,IACf;AAAA,EACF;AAEJ;AAEA,MAAM,0BAA0BA,iBAAM,UAOnC;AAAA,EAPH,cAAA;AAAA,UAAA,GAAA,SAAA;AAQU,SAAA,QAAA,EAAE,OAAO,KAAK;AAAA,EAAA;AAAA,EACtB,OAAO,yBAAyB,OAAY;AAC1C,WAAO,EAAE,UAAU,MAAM,cAAc;AAAA,EAAA;AAAA,EAEzC,OAAO,yBAAyB,OAAc;AAC5C,WAAO,EAAE,MAAM;AAAA,EAAA;AAAA,EAEjB,QAAQ;AACN,SAAK,SAAS,EAAE,OAAO,KAAA,CAAM;AAAA,EAAA;AAAA,EAE/B,mBACE,WAKA,WACM;AACN,QAAI,UAAU,SAAS,UAAU,aAAa,KAAK,MAAM,UAAU;AACjE,WAAK,MAAM;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,kBAAkB,OAAc,WAAsB;AAChD,QAAA,KAAK,MAAM,SAAS;AACjB,WAAA,MAAM,QAAQ,OAAO,SAAS;AAAA,IAAA;AAAA,EACrC;AAAA,EAEF,SAAS;AAEA,WAAA,KAAK,MAAM,SAAS;AAAA,MACzB,OACE,KAAK,MAAM,aAAa,KAAK,MAAM,gBAC/B,OACA,KAAK,MAAM;AAAA,MACjB,OAAO,MAAM;AACX,aAAK,MAAM;AAAA,MAAA;AAAA,IACb,CACD;AAAA,EAAA;AAEL;AAEgB,SAAA,eAAe,EAAE,SAAyB;AAClD,QAAA,CAAC,MAAM,OAAO,IAAIA,iBAAM,SAAS,QAAQ,IAAI,aAAa,YAAY;AAG1E,SAAAC,2BAAA,KAAC,SAAI,OAAO,EAAE,SAAS,SAAS,UAAU,OACxC,GAAA,UAAA;AAAA,IAACA,2BAAAA,KAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,QAAA,GACxD,UAAA;AAAA,MAAAF,+BAAC,YAAO,OAAO,EAAE,UAAU,UAAU,UAAqB,yBAAA;AAAA,MAC1DA,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,cAAc;AAAA,UAChB;AAAA,UACA,SAAS,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,UAE/B,iBAAO,eAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IACzB,GACF;AAAA,mCACC,OAAI,EAAA,OAAO,EAAE,QAAQ,YAAY;AAAA,IACjC,sCACE,OACC,EAAA,UAAAA,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,QAEC,gBAAM,UAAUA,+BAAC,QAAM,EAAA,UAAA,MAAM,SAAQ,IAAU;AAAA,MAAA;AAAA,OAEpD,IACE;AAAA,EAAA,GACN;AAEJ;;;"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ErrorRouteComponent } from './route.cjs';
|
|
2
|
-
import { ErrorInfo } from 'react';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
export declare function CatchBoundary(props: {
|
|
5
|
-
getResetKey: () => number | string;
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
errorComponent?: ErrorRouteComponent;
|
|
8
|
-
onCatch?: (error: Error, errorInfo: ErrorInfo) => void;
|
|
9
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export declare function ErrorComponent({ error }: {
|
|
11
|
-
error: any;
|
|
12
|
-
}): import("react/jsx-runtime").JSX.Element;
|
package/dist/cjs/ClientOnly.cjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const React = require("react");
|
|
5
|
-
function ClientOnly({ children, fallback = null }) {
|
|
6
|
-
return useHydrated() ? /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children }) : /* @__PURE__ */ jsxRuntime.jsx(React.Fragment, { children: fallback });
|
|
7
|
-
}
|
|
8
|
-
function useHydrated() {
|
|
9
|
-
return React.useSyncExternalStore(
|
|
10
|
-
subscribe,
|
|
11
|
-
() => true,
|
|
12
|
-
() => false
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
function subscribe() {
|
|
16
|
-
return () => {
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
exports.ClientOnly = ClientOnly;
|
|
20
|
-
//# sourceMappingURL=ClientOnly.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientOnly.cjs","sources":["../../src/ClientOnly.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface ClientOnlyProps {\n /**\n * The children to render when the JS is loaded.\n */\n children: React.ReactNode\n /**\n * The fallback component to render if the JS is not yet loaded.\n */\n fallback?: React.ReactNode\n}\n\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * <Chart />\n * </ClientOnly>\n * )\n * ```\n */\nexport function ClientOnly({ children, fallback = null }: ClientOnlyProps) {\n return useHydrated() ? (\n <React.Fragment>{children}</React.Fragment>\n ) : (\n <React.Fragment>{fallback}</React.Fragment>\n )\n}\n\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * @example\n * ```tsx\n * // Disable a button that needs JS to work.\n * let hydrated = useHydrated()\n * return (\n * <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * )\n * ```\n * @returns True if the JS has been hydrated already, false otherwise.\n */\nfunction useHydrated(): boolean {\n return React.useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nfunction subscribe() {\n return () => {}\n}\n"],"names":["jsx"],"mappings":";;;;AA8BO,SAAS,WAAW,EAAE,UAAU,WAAW,QAAyB;AACzE,SAAO,YAAY,IAChBA,2BAAAA,IAAA,MAAM,UAAN,EAAgB,SAAS,CAAA,IAEzBA,2BAAAA,IAAA,MAAM,UAAN,EAAgB,UAAS,SAAA,CAAA;AAE9B;AAqBA,SAAS,cAAuB;AAC9B,SAAO,MAAM;AAAA,IACX;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACF;AAEA,SAAS,YAAY;AACnB,SAAO,MAAM;AAAA,EAAC;AAChB;;"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
export interface ClientOnlyProps {
|
|
3
|
-
/**
|
|
4
|
-
* The children to render when the JS is loaded.
|
|
5
|
-
*/
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
/**
|
|
8
|
-
* The fallback component to render if the JS is not yet loaded.
|
|
9
|
-
*/
|
|
10
|
-
fallback?: React.ReactNode;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Render the children only after the JS has loaded client-side. Use an optional
|
|
14
|
-
* fallback component if the JS is not yet loaded.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* Render a Chart component if JS loads, renders a simple FakeChart
|
|
18
|
-
* component server-side or if there is no JS. The FakeChart can have only the
|
|
19
|
-
* UI without the behavior or be a loading spinner or skeleton.
|
|
20
|
-
*
|
|
21
|
-
* ```tsx
|
|
22
|
-
* return (
|
|
23
|
-
* <ClientOnly fallback={<FakeChart />}>
|
|
24
|
-
* <Chart />
|
|
25
|
-
* </ClientOnly>
|
|
26
|
-
* )
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function ClientOnly({ children, fallback }: ClientOnlyProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/cjs/HeadContent.cjs
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const Asset = require("./Asset.cjs");
|
|
5
|
-
const useRouter = require("./useRouter.cjs");
|
|
6
|
-
const useRouterState = require("./useRouterState.cjs");
|
|
7
|
-
function _interopNamespaceDefault(e) {
|
|
8
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
9
|
-
if (e) {
|
|
10
|
-
for (const k in e) {
|
|
11
|
-
if (k !== "default") {
|
|
12
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
13
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: () => e[k]
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
n.default = e;
|
|
21
|
-
return Object.freeze(n);
|
|
22
|
-
}
|
|
23
|
-
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
24
|
-
const useTags = () => {
|
|
25
|
-
const router = useRouter.useRouter();
|
|
26
|
-
const routeMeta = useRouterState.useRouterState({
|
|
27
|
-
select: (state) => {
|
|
28
|
-
return state.matches.map((match) => match.meta).filter(Boolean);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const meta = React__namespace.useMemo(() => {
|
|
32
|
-
const resultMeta = [];
|
|
33
|
-
const metaByAttribute = {};
|
|
34
|
-
let title;
|
|
35
|
-
[...routeMeta].reverse().forEach((metas) => {
|
|
36
|
-
[...metas].reverse().forEach((m) => {
|
|
37
|
-
if (!m) return;
|
|
38
|
-
if (m.title) {
|
|
39
|
-
if (!title) {
|
|
40
|
-
title = {
|
|
41
|
-
tag: "title",
|
|
42
|
-
children: m.title
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
} else {
|
|
46
|
-
const attribute = m.name ?? m.property;
|
|
47
|
-
if (attribute) {
|
|
48
|
-
if (metaByAttribute[attribute]) {
|
|
49
|
-
return;
|
|
50
|
-
} else {
|
|
51
|
-
metaByAttribute[attribute] = true;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
resultMeta.push({
|
|
55
|
-
tag: "meta",
|
|
56
|
-
attrs: {
|
|
57
|
-
...m
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
if (title) {
|
|
64
|
-
resultMeta.push(title);
|
|
65
|
-
}
|
|
66
|
-
resultMeta.reverse();
|
|
67
|
-
return resultMeta;
|
|
68
|
-
}, [routeMeta]);
|
|
69
|
-
const links = useRouterState.useRouterState({
|
|
70
|
-
select: (state) => {
|
|
71
|
-
var _a;
|
|
72
|
-
const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
|
|
73
|
-
tag: "link",
|
|
74
|
-
attrs: {
|
|
75
|
-
...link
|
|
76
|
-
}
|
|
77
|
-
}));
|
|
78
|
-
const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;
|
|
79
|
-
const assets = state.matches.map((match) => {
|
|
80
|
-
var _a2;
|
|
81
|
-
return ((_a2 = manifest == null ? void 0 : manifest.routes[match.routeId]) == null ? void 0 : _a2.assets) ?? [];
|
|
82
|
-
}).filter(Boolean).flat(1).filter((asset) => asset.tag === "link").map(
|
|
83
|
-
(asset) => ({
|
|
84
|
-
tag: "link",
|
|
85
|
-
attrs: {
|
|
86
|
-
...asset.attrs,
|
|
87
|
-
suppressHydrationWarning: true
|
|
88
|
-
}
|
|
89
|
-
})
|
|
90
|
-
);
|
|
91
|
-
return [...constructed, ...assets];
|
|
92
|
-
},
|
|
93
|
-
structuralSharing: true
|
|
94
|
-
});
|
|
95
|
-
const preloadMeta = useRouterState.useRouterState({
|
|
96
|
-
select: (state) => {
|
|
97
|
-
const preloadMeta2 = [];
|
|
98
|
-
state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach(
|
|
99
|
-
(route) => {
|
|
100
|
-
var _a, _b, _c, _d;
|
|
101
|
-
return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {
|
|
102
|
-
preloadMeta2.push({
|
|
103
|
-
tag: "link",
|
|
104
|
-
attrs: {
|
|
105
|
-
rel: "modulepreload",
|
|
106
|
-
href: preload
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
);
|
|
112
|
-
return preloadMeta2;
|
|
113
|
-
},
|
|
114
|
-
structuralSharing: true
|
|
115
|
-
});
|
|
116
|
-
const headScripts = useRouterState.useRouterState({
|
|
117
|
-
select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({
|
|
118
|
-
tag: "script",
|
|
119
|
-
attrs: {
|
|
120
|
-
...script
|
|
121
|
-
},
|
|
122
|
-
children
|
|
123
|
-
})),
|
|
124
|
-
structuralSharing: true
|
|
125
|
-
});
|
|
126
|
-
return uniqBy(
|
|
127
|
-
[
|
|
128
|
-
...meta,
|
|
129
|
-
...preloadMeta,
|
|
130
|
-
...links,
|
|
131
|
-
...headScripts
|
|
132
|
-
],
|
|
133
|
-
(d) => {
|
|
134
|
-
return JSON.stringify(d);
|
|
135
|
-
}
|
|
136
|
-
);
|
|
137
|
-
};
|
|
138
|
-
function HeadContent() {
|
|
139
|
-
const tags = useTags();
|
|
140
|
-
return tags.map((tag) => /* @__PURE__ */ React.createElement(Asset.Asset, { ...tag, key: `tsr-meta-${JSON.stringify(tag)}` }));
|
|
141
|
-
}
|
|
142
|
-
function uniqBy(arr, fn) {
|
|
143
|
-
const seen = /* @__PURE__ */ new Set();
|
|
144
|
-
return arr.filter((item) => {
|
|
145
|
-
const key = fn(item);
|
|
146
|
-
if (seen.has(key)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
seen.add(key);
|
|
150
|
-
return true;
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
exports.HeadContent = HeadContent;
|
|
154
|
-
exports.useTags = useTags;
|
|
155
|
-
//# sourceMappingURL=HeadContent.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const useTags = () => {\n const router = useRouter()\n\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta!).filter(Boolean)\n },\n })\n\n const meta: Array<RouterManagedTag> = React.useMemo(() => {\n const resultMeta: Array<RouterManagedTag> = []\n const metaByAttribute: Record<string, true> = {}\n let title: RouterManagedTag | undefined\n ;[...routeMeta].reverse().forEach((metas) => {\n ;[...metas].reverse().forEach((m) => {\n if (!m) return\n\n if (m.title) {\n if (!title) {\n title = {\n tag: 'title',\n children: m.title,\n }\n }\n } else {\n const attribute = m.name ?? m.property\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return\n } else {\n metaByAttribute[attribute] = true\n }\n }\n\n resultMeta.push({\n tag: 'meta',\n attrs: {\n ...m,\n },\n })\n }\n })\n })\n\n if (title) {\n resultMeta.push(title)\n }\n\n resultMeta.reverse()\n\n return resultMeta\n }, [routeMeta])\n\n const links = useRouterState({\n select: (state) => {\n const constructed = state.matches\n .map((match) => match.links!)\n .filter(Boolean)\n .flat(1)\n .map((link) => ({\n tag: 'link',\n attrs: {\n ...link,\n },\n })) satisfies Array<RouterManagedTag>\n\n const manifest = router.ssr?.manifest\n\n // These are the assets extracted from the ViteManifest\n // using the `startManifestPlugin`\n const assets = state.matches\n .map((match) => manifest?.routes[match.routeId]?.assets ?? [])\n .filter(Boolean)\n .flat(1)\n .filter((asset) => asset.tag === 'link')\n .map(\n (asset) =>\n ({\n tag: 'link',\n attrs: {\n ...asset.attrs,\n suppressHydrationWarning: true,\n },\n }) satisfies RouterManagedTag,\n )\n\n return [...constructed, ...assets]\n },\n structuralSharing: true as any,\n })\n\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta: Array<RouterManagedTag> = []\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n router.ssr?.manifest?.routes[route.id]?.preloads\n ?.filter(Boolean)\n .forEach((preload) => {\n preloadMeta.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: preload,\n },\n })\n }),\n )\n\n return preloadMeta\n },\n structuralSharing: true as any,\n })\n\n const headScripts = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.headScripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n },\n children,\n })),\n structuralSharing: true as any,\n })\n\n return uniqBy(\n [\n ...meta,\n ...preloadMeta,\n ...links,\n ...headScripts,\n ] as Array<RouterManagedTag>,\n (d) => {\n return JSON.stringify(d)\n },\n )\n}\n\n/**\n * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.\n * It should be rendered in the `<head>` of your document.\n */\nexport function HeadContent() {\n const tags = useTags()\n return tags.map((tag) => (\n <Asset {...tag} key={`tsr-meta-${JSON.stringify(tag)}`} />\n ))\n}\n\nfunction uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {\n const seen = new Set<string>()\n return arr.filter((item) => {\n const key = fn(item)\n if (seen.has(key)) {\n return false\n }\n seen.add(key)\n return true\n })\n}\n"],"names":["useRouter","useRouterState","React","_a","preloadMeta","Asset"],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { RouterManagedTag } from '@tanstack/router-core';
|
|
2
|
-
export declare const useTags: () => RouterManagedTag[];
|
|
3
|
-
/**
|
|
4
|
-
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
|
|
5
|
-
* It should be rendered in the `<head>` of your document.
|
|
6
|
-
*/
|
|
7
|
-
export declare function HeadContent(): import("react/jsx-runtime").JSX.Element[];
|