@tanstack/solid-router 1.112.0 → 1.112.2
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/dist/cjs/Asset.cjs +18 -28
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/HeadContent.cjs +9 -4
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/HeadContent.d.cts +2 -2
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1 -1
- package/dist/esm/Asset.js +19 -29
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/HeadContent.d.ts +2 -2
- package/dist/esm/HeadContent.js +8 -3
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/source/Asset.jsx +4 -3
- package/dist/source/Asset.jsx.map +1 -1
- package/dist/source/HeadContent.d.ts +2 -2
- package/dist/source/HeadContent.jsx +6 -3
- package/dist/source/HeadContent.jsx.map +1 -1
- package/dist/source/index.d.ts +1 -1
- package/dist/source/index.jsx +1 -1
- package/dist/source/index.jsx.map +1 -1
- package/package.json +4 -3
- package/src/Asset.tsx +4 -3
- package/src/HeadContent.tsx +21 -13
- package/src/index.tsx +1 -1
package/dist/cjs/Asset.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const web = require("solid-js/web");
|
|
4
|
-
|
|
4
|
+
const meta = require("@solidjs/meta");
|
|
5
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<link>`), _tmpl$2 = /* @__PURE__ */ web.template(`<script>`);
|
|
5
6
|
function Asset({
|
|
6
7
|
tag,
|
|
7
8
|
attrs,
|
|
@@ -9,46 +10,35 @@ function Asset({
|
|
|
9
10
|
}) {
|
|
10
11
|
switch (tag) {
|
|
11
12
|
case "title":
|
|
12
|
-
return ((
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
web.insert(_el$, children);
|
|
16
|
-
return _el$;
|
|
17
|
-
})();
|
|
13
|
+
return web.createComponent(meta.Title, web.mergeProps(attrs, {
|
|
14
|
+
children
|
|
15
|
+
}));
|
|
18
16
|
case "meta":
|
|
19
|
-
return (
|
|
20
|
-
var _el$2 = _tmpl$2();
|
|
21
|
-
web.spread(_el$2, attrs, false, false);
|
|
22
|
-
return _el$2;
|
|
23
|
-
})();
|
|
17
|
+
return web.createComponent(meta.Meta, attrs);
|
|
24
18
|
case "link":
|
|
25
19
|
return (() => {
|
|
26
|
-
var _el$
|
|
27
|
-
web.spread(_el
|
|
28
|
-
return _el
|
|
20
|
+
var _el$ = _tmpl$();
|
|
21
|
+
web.spread(_el$, attrs, false, false);
|
|
22
|
+
return _el$;
|
|
29
23
|
})();
|
|
30
24
|
case "style":
|
|
31
|
-
return ((
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"innerHTML": children
|
|
35
|
-
}), false, false);
|
|
36
|
-
return _el$4;
|
|
37
|
-
})();
|
|
25
|
+
return web.createComponent(meta.Style, web.mergeProps(attrs, {
|
|
26
|
+
innerHTML: children
|
|
27
|
+
}));
|
|
38
28
|
case "script":
|
|
39
29
|
if (attrs && attrs.src) {
|
|
40
30
|
return (() => {
|
|
41
|
-
var _el$
|
|
42
|
-
web.spread(_el$
|
|
43
|
-
return _el$
|
|
31
|
+
var _el$2 = _tmpl$2();
|
|
32
|
+
web.spread(_el$2, attrs, false, false);
|
|
33
|
+
return _el$2;
|
|
44
34
|
})();
|
|
45
35
|
}
|
|
46
36
|
if (typeof children === "string") return (() => {
|
|
47
|
-
var _el$
|
|
48
|
-
web.spread(_el$
|
|
37
|
+
var _el$3 = _tmpl$2();
|
|
38
|
+
web.spread(_el$3, web.mergeProps(attrs, {
|
|
49
39
|
"innerHTML": children
|
|
50
40
|
}), false, false);
|
|
51
|
-
return _el$
|
|
41
|
+
return _el$3;
|
|
52
42
|
})();
|
|
53
43
|
return null;
|
|
54
44
|
default:
|
package/dist/cjs/Asset.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 <
|
|
1
|
+
{"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","src","_el$2","_tmpl$2","_el$3"],"mappings":";;;;;AAGO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,oBAAQC,KAAAA,OAAKC,IAAAA,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,IAAAA,gBAAQG,WAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,YAAAA,OAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,oBAAQM,KAAAA,OAAKJ,IAAAA,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACED,UAAAA,SAAkBA,MAAcU,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,cAAAA,OAAAA,OAAmBX,OAAK,OAAA,KAAA;AAAAW,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOV,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAY,QAAAD,QAAA;AAAAC,mBAAAA,OAAAT,eAAmBJ,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAY,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;;"}
|
package/dist/cjs/HeadContent.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const web = require("solid-js/web");
|
|
4
4
|
const Solid = require("solid-js");
|
|
5
|
+
const meta = require("@solidjs/meta");
|
|
5
6
|
const Asset = require("./Asset.cjs");
|
|
6
7
|
const useRouter = require("./useRouter.cjs");
|
|
7
8
|
const useRouterState = require("./useRouterState.cjs");
|
|
@@ -29,7 +30,7 @@ const useTags = () => {
|
|
|
29
30
|
return state.matches.map((match) => match.meta).filter(Boolean);
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
|
-
const
|
|
33
|
+
const meta2 = Solid__namespace.createMemo(() => {
|
|
33
34
|
const resultMeta = [];
|
|
34
35
|
const metaByAttribute = {};
|
|
35
36
|
let title;
|
|
@@ -66,7 +67,7 @@ const useTags = () => {
|
|
|
66
67
|
}
|
|
67
68
|
resultMeta.reverse();
|
|
68
69
|
return resultMeta;
|
|
69
|
-
}
|
|
70
|
+
});
|
|
70
71
|
const links = useRouterState.useRouterState({
|
|
71
72
|
select: (state) => state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
|
|
72
73
|
tag: "link",
|
|
@@ -105,13 +106,17 @@ const useTags = () => {
|
|
|
105
106
|
children
|
|
106
107
|
}))
|
|
107
108
|
});
|
|
108
|
-
return uniqBy([...
|
|
109
|
+
return () => uniqBy([...meta2(), ...preloadMeta(), ...links(), ...headScripts()], (d) => {
|
|
109
110
|
return JSON.stringify(d);
|
|
110
111
|
});
|
|
111
112
|
};
|
|
112
113
|
function HeadContent() {
|
|
113
114
|
const tags = useTags();
|
|
114
|
-
return
|
|
115
|
+
return web.createComponent(meta.MetaProvider, {
|
|
116
|
+
get children() {
|
|
117
|
+
return tags().map((tag) => web.createComponent(Asset.Asset, tag));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
115
120
|
}
|
|
116
121
|
function uniqBy(arr, fn) {
|
|
117
122
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\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: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\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 }
|
|
1
|
+
{"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { MetaProvider } from '@solidjs/meta'\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: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\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 })\n\n const links = useRouterState({\n select: (state) =>\n 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 })) as Array<RouterManagedTag>,\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 })\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 })\n\n return () =>\n 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 (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\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":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","flat","link","preloadMeta","looseRoutesById","routeId","route","ssr","manifest","routes","id","preloads","preload","rel","href","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","MetaProvider","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RouterManagedTag } from '@tanstack/router-core';
|
|
2
2
|
import * as Solid from 'solid-js';
|
|
3
|
-
export declare const useTags: () => RouterManagedTag[];
|
|
3
|
+
export declare const useTags: () => () => RouterManagedTag[];
|
|
4
4
|
/**
|
|
5
5
|
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
|
|
6
6
|
* It should be rendered in the `<head>` of your document.
|
|
7
7
|
*/
|
|
8
|
-
export declare function HeadContent(): Solid.JSX.Element
|
|
8
|
+
export declare function HeadContent(): Solid.JSX.Element;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -256,5 +256,6 @@ exports.notFound = notFound.notFound;
|
|
|
256
256
|
exports.ScriptOnce = ScriptOnce.ScriptOnce;
|
|
257
257
|
exports.Asset = Asset.Asset;
|
|
258
258
|
exports.HeadContent = HeadContent.HeadContent;
|
|
259
|
+
exports.useTags = HeadContent.useTags;
|
|
259
260
|
exports.Scripts = Scripts.Scripts;
|
|
260
261
|
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -46,5 +46,5 @@ export type { NotFoundError } from './not-found.cjs';
|
|
|
46
46
|
export * from './typePrimitives.cjs';
|
|
47
47
|
export { ScriptOnce } from './ScriptOnce.cjs';
|
|
48
48
|
export { Asset } from './Asset.cjs';
|
|
49
|
-
export { HeadContent } from './HeadContent.cjs';
|
|
49
|
+
export { HeadContent, useTags } from './HeadContent.cjs';
|
|
50
50
|
export { Scripts } from './Scripts.cjs';
|
package/dist/esm/Asset.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { template, spread, mergeProps,
|
|
2
|
-
|
|
1
|
+
import { template, spread, mergeProps, createComponent } from "solid-js/web";
|
|
2
|
+
import { Style, Meta, Title } from "@solidjs/meta";
|
|
3
|
+
var _tmpl$ = /* @__PURE__ */ template(`<link>`), _tmpl$2 = /* @__PURE__ */ template(`<script>`);
|
|
3
4
|
function Asset({
|
|
4
5
|
tag,
|
|
5
6
|
attrs,
|
|
@@ -7,46 +8,35 @@ function Asset({
|
|
|
7
8
|
}) {
|
|
8
9
|
switch (tag) {
|
|
9
10
|
case "title":
|
|
10
|
-
return ((
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
insert(_el$, children);
|
|
14
|
-
return _el$;
|
|
15
|
-
})();
|
|
11
|
+
return createComponent(Title, mergeProps(attrs, {
|
|
12
|
+
children
|
|
13
|
+
}));
|
|
16
14
|
case "meta":
|
|
17
|
-
return (
|
|
18
|
-
var _el$2 = _tmpl$2();
|
|
19
|
-
spread(_el$2, attrs, false, false);
|
|
20
|
-
return _el$2;
|
|
21
|
-
})();
|
|
15
|
+
return createComponent(Meta, attrs);
|
|
22
16
|
case "link":
|
|
23
17
|
return (() => {
|
|
24
|
-
var _el$
|
|
25
|
-
spread(_el
|
|
26
|
-
return _el
|
|
18
|
+
var _el$ = _tmpl$();
|
|
19
|
+
spread(_el$, attrs, false, false);
|
|
20
|
+
return _el$;
|
|
27
21
|
})();
|
|
28
22
|
case "style":
|
|
29
|
-
return ((
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"innerHTML": children
|
|
33
|
-
}), false, false);
|
|
34
|
-
return _el$4;
|
|
35
|
-
})();
|
|
23
|
+
return createComponent(Style, mergeProps(attrs, {
|
|
24
|
+
innerHTML: children
|
|
25
|
+
}));
|
|
36
26
|
case "script":
|
|
37
27
|
if (attrs && attrs.src) {
|
|
38
28
|
return (() => {
|
|
39
|
-
var _el$
|
|
40
|
-
spread(_el$
|
|
41
|
-
return _el$
|
|
29
|
+
var _el$2 = _tmpl$2();
|
|
30
|
+
spread(_el$2, attrs, false, false);
|
|
31
|
+
return _el$2;
|
|
42
32
|
})();
|
|
43
33
|
}
|
|
44
34
|
if (typeof children === "string") return (() => {
|
|
45
|
-
var _el$
|
|
46
|
-
spread(_el$
|
|
35
|
+
var _el$3 = _tmpl$2();
|
|
36
|
+
spread(_el$3, mergeProps(attrs, {
|
|
47
37
|
"innerHTML": children
|
|
48
38
|
}), false, false);
|
|
49
|
-
return _el$
|
|
39
|
+
return _el$3;
|
|
50
40
|
})();
|
|
51
41
|
return null;
|
|
52
42
|
default:
|
package/dist/esm/Asset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.js","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 <
|
|
1
|
+
{"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","src","_el$2","_tmpl$2","_el$3"],"mappings":";;;AAGO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,gBAAQC,OAAKC,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,gBAAQG,MAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,eAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,gBAAQM,OAAKJ,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACED,UAAAA,SAAkBA,MAAcU,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,iBAAAA,OAAmBX,OAAK,OAAA,KAAA;AAAAW,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOV,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAY,QAAAD,QAAA;AAAAC,eAAAA,OAAAT,WAAmBJ,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAY,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RouterManagedTag } from '@tanstack/router-core';
|
|
2
2
|
import * as Solid from 'solid-js';
|
|
3
|
-
export declare const useTags: () => RouterManagedTag[];
|
|
3
|
+
export declare const useTags: () => () => RouterManagedTag[];
|
|
4
4
|
/**
|
|
5
5
|
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
|
|
6
6
|
* It should be rendered in the `<head>` of your document.
|
|
7
7
|
*/
|
|
8
|
-
export declare function HeadContent(): Solid.JSX.Element
|
|
8
|
+
export declare function HeadContent(): Solid.JSX.Element;
|
package/dist/esm/HeadContent.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createComponent } from "solid-js/web";
|
|
2
2
|
import * as Solid from "solid-js";
|
|
3
|
+
import { MetaProvider } from "@solidjs/meta";
|
|
3
4
|
import { Asset } from "./Asset.js";
|
|
4
5
|
import { useRouter } from "./useRouter.js";
|
|
5
6
|
import { useRouterState } from "./useRouterState.js";
|
|
@@ -47,7 +48,7 @@ const useTags = () => {
|
|
|
47
48
|
}
|
|
48
49
|
resultMeta.reverse();
|
|
49
50
|
return resultMeta;
|
|
50
|
-
}
|
|
51
|
+
});
|
|
51
52
|
const links = useRouterState({
|
|
52
53
|
select: (state) => state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
|
|
53
54
|
tag: "link",
|
|
@@ -86,13 +87,17 @@ const useTags = () => {
|
|
|
86
87
|
children
|
|
87
88
|
}))
|
|
88
89
|
});
|
|
89
|
-
return uniqBy([...meta(), ...preloadMeta(), ...links(), ...headScripts()], (d) => {
|
|
90
|
+
return () => uniqBy([...meta(), ...preloadMeta(), ...links(), ...headScripts()], (d) => {
|
|
90
91
|
return JSON.stringify(d);
|
|
91
92
|
});
|
|
92
93
|
};
|
|
93
94
|
function HeadContent() {
|
|
94
95
|
const tags = useTags();
|
|
95
|
-
return
|
|
96
|
+
return createComponent(MetaProvider, {
|
|
97
|
+
get children() {
|
|
98
|
+
return tags().map((tag) => createComponent(Asset, tag));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
96
101
|
}
|
|
97
102
|
function uniqBy(arr, fn) {
|
|
98
103
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadContent.js","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\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: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\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 }
|
|
1
|
+
{"version":3,"file":"HeadContent.js","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { MetaProvider } from '@solidjs/meta'\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: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\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 })\n\n const links = useRouterState({\n select: (state) =>\n 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 })) as Array<RouterManagedTag>,\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 })\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 })\n\n return () =>\n 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 (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\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":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","flat","link","preloadMeta","looseRoutesById","routeId","route","ssr","manifest","routes","id","preloads","preload","rel","href","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","MetaProvider","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":";;;;;;AAOO,MAAMA,UAAUA,MAAM;AAC3B,QAAMC,SAASC,UAAU;AAEzB,QAAMC,YAAYC,eAAe;AAAA,IAC/BC,QAASC,CAAU,UAAA;AACVA,aAAAA,MAAMC,QAAQC,IAAKC,CAAAA,UAAUA,MAAMC,IAAK,EAAEC,OAAOC,OAAO;AAAA,IAAA;AAAA,EACjE,CACD;AAEKF,QAAAA,OAAgDG,MAAMC,WAAW,MAAM;AAC3E,UAAMC,aAAsC,CAAE;AAC9C,UAAMC,kBAAwC,CAAC;AAC3CC,QAAAA;AACH,KAAC,GAAGd,UAAU,CAAC,EAAEe,QAAQ,EAAEC,QAASC,CAAU,UAAA;AAC5C,OAAC,GAAGA,KAAK,EAAEF,QAAQ,EAAEC,QAASE,CAAM,MAAA;AACnC,YAAI,CAACA,EAAG;AAER,YAAIA,EAAEJ,OAAO;AACX,cAAI,CAACA,OAAO;AACF,oBAAA;AAAA,cACNK,KAAK;AAAA,cACLC,UAAUF,EAAEJ;AAAAA,YACd;AAAA,UAAA;AAAA,QACF,OACK;AACCO,gBAAAA,YAAYH,EAAEI,QAAQJ,EAAEK;AAC9B,cAAIF,WAAW;AACTR,gBAAAA,gBAAgBQ,SAAS,GAAG;AAC9B;AAAA,YAAA,OACK;AACLR,8BAAgBQ,SAAS,IAAI;AAAA,YAAA;AAAA,UAC/B;AAGFT,qBAAWY,KAAK;AAAA,YACdL,KAAK;AAAA,YACLM,OAAO;AAAA,cACL,GAAGP;AAAAA,YAAAA;AAAAA,UACL,CACD;AAAA,QAAA;AAAA,MACH,CACD;AAAA,IAAA,CACF;AAED,QAAIJ,OAAO;AACTF,iBAAWY,KAAKV,KAAK;AAAA,IAAA;AAGvBF,eAAWG,QAAQ;AAEZH,WAAAA;AAAAA,EAAAA,CACR;AAED,QAAMc,QAAQzB,eAAe;AAAA,IAC3BC,QAASC,CACPA,UAAAA,MAAMC,QACHC,IAAKC,WAAUA,MAAMoB,KAAM,EAC3BlB,OAAOC,OAAO,EACdkB,KAAK,CAAC,EACNtB,IAAKuB,CAAU,UAAA;AAAA,MACdT,KAAK;AAAA,MACLM,OAAO;AAAA,QACL,GAAGG;AAAAA,MAAAA;AAAAA,IACL,EACA;AAAA,EAAA,CACP;AAED,QAAMC,cAAc5B,eAAe;AAAA,IACjCC,QAASC,CAAU,UAAA;AACjB,YAAM0B,eAAuC,CAAE;AAEzCzB,YAAAA,QACHC,IAAKC,CAAUR,UAAAA,OAAOgC,gBAAgBxB,MAAMyB,OAAO,CAAE,EACrDf,QAASgB,CAAAA,UAAAA;;AACRlC,8CAAOmC,QAAPnC,mBAAYoC,aAAZpC,mBAAsBqC,OAAOH,MAAMI,QAAnCtC,mBAAwCuC,aAAxCvC,mBACIU,OAAOC,SACRO,QAASsB,CAAY,YAAA;AACpBT,uBAAYL,KAAK;AAAA,YACfL,KAAK;AAAA,YACLM,OAAO;AAAA,cACLc,KAAK;AAAA,cACLC,MAAMF;AAAAA,YAAAA;AAAAA,UACR,CACD;AAAA,QAAA;AAAA,OAEP;AAEKT,aAAAA;AAAAA,IAAAA;AAAAA,EACT,CACD;AAED,QAAMY,cAAcxC,eAAe;AAAA,IACjCC,QAASC,CAELA,UAAAA,MAAMC,QACHC,IAAKC,WAAUA,MAAMmC,WAAY,EACjCd,KAAK,CAAC,EACNnB,OAAOC,OAAO,EACjBJ,IAAI,CAAC;AAAA,MAAEe;AAAAA,MAAU,GAAGsB;AAAAA,IAAAA,OAAc;AAAA,MAClCvB,KAAK;AAAA,MACLM,OAAO;AAAA,QACL,GAAGiB;AAAAA,MACL;AAAA,MACAtB;AAAAA,IAAAA,EACA;AAAA,EAAA,CACL;AAED,SAAO,MACLuB,OACE,CACE,GAAGpC,KAAAA,GACH,GAAGsB,YAAAA,GACH,GAAGH,MACH,GAAA,GAAGe,aAAa,GAEjBG,CAAM,MAAA;AACEC,WAAAA,KAAKC,UAAUF,CAAC;AAAA,EAAA,CAE3B;AACJ;AAMO,SAASG,cAAc;AAC5B,QAAMC,OAAOnD,QAAQ;AACrB,SAAAoD,gBACGC,cAAY;AAAA,IAAA,IAAA9B,WAAA;AAAA,aACV4B,KAAO3C,EAAAA,IAAKc,SAAG8B,gBACbE,OAAUhC,GAAG,CACf;AAAA,IAAA;AAAA,EAAC,CAAA;AAGR;AAEA,SAASwB,OAAUS,KAAeC,IAAyB;AACnDC,QAAAA,2BAAWC,IAAY;AACtBH,SAAAA,IAAI5C,OAAQgD,CAAS,SAAA;AACpBC,UAAAA,MAAMJ,GAAGG,IAAI;AACfF,QAAAA,KAAKI,IAAID,GAAG,GAAG;AACV,aAAA;AAAA,IAAA;AAETH,SAAKK,IAAIF,GAAG;AACL,WAAA;AAAA,EAAA,CACR;AACH;"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -46,5 +46,5 @@ export type { NotFoundError } from './not-found.js';
|
|
|
46
46
|
export * from './typePrimitives.js';
|
|
47
47
|
export { ScriptOnce } from './ScriptOnce.js';
|
|
48
48
|
export { Asset } from './Asset.js';
|
|
49
|
-
export { HeadContent } from './HeadContent.js';
|
|
49
|
+
export { HeadContent, useTags } from './HeadContent.js';
|
|
50
50
|
export { Scripts } from './Scripts.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -32,7 +32,7 @@ import { useLayoutEffect } from "./utils.js";
|
|
|
32
32
|
import { CatchNotFound, DefaultGlobalNotFound, isNotFound, notFound } from "./not-found.js";
|
|
33
33
|
import { ScriptOnce } from "./ScriptOnce.js";
|
|
34
34
|
import { Asset } from "./Asset.js";
|
|
35
|
-
import { HeadContent } from "./HeadContent.js";
|
|
35
|
+
import { HeadContent, useTags } from "./HeadContent.js";
|
|
36
36
|
import { Scripts } from "./Scripts.js";
|
|
37
37
|
export {
|
|
38
38
|
Asset,
|
|
@@ -144,6 +144,7 @@ export {
|
|
|
144
144
|
useRouter,
|
|
145
145
|
useRouterState,
|
|
146
146
|
useSearch,
|
|
147
|
+
useTags,
|
|
147
148
|
default3 as warning
|
|
148
149
|
};
|
|
149
150
|
//# sourceMappingURL=index.js.map
|
package/dist/source/Asset.jsx
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { Meta, Style, Title } from '@solidjs/meta';
|
|
1
2
|
export function Asset({ tag, attrs, children }) {
|
|
2
3
|
switch (tag) {
|
|
3
4
|
case 'title':
|
|
4
|
-
return <
|
|
5
|
+
return <Title {...attrs}>{children}</Title>;
|
|
5
6
|
case 'meta':
|
|
6
|
-
return <
|
|
7
|
+
return <Meta {...attrs}/>;
|
|
7
8
|
case 'link':
|
|
8
9
|
return <link {...attrs}/>;
|
|
9
10
|
case 'style':
|
|
10
|
-
return <
|
|
11
|
+
return <Style {...attrs} innerHTML={children}/>;
|
|
11
12
|
case 'script':
|
|
12
13
|
if (attrs && attrs.src) {
|
|
13
14
|
return <script {...attrs}/>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGlD,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAoB;IAC9D,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;QAC7C,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAA;QAClD,KAAK,QAAQ;YACX,IAAK,KAAa,IAAK,KAAa,CAAC,GAAG,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;YAC9B,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAA;YACnD,OAAO,IAAI,CAAA;QACb;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Solid from 'solid-js';
|
|
2
2
|
import type { RouterManagedTag } from '@tanstack/router-core';
|
|
3
|
-
export declare const useTags: () => RouterManagedTag[];
|
|
3
|
+
export declare const useTags: () => () => RouterManagedTag[];
|
|
4
4
|
/**
|
|
5
5
|
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
|
|
6
6
|
* It should be rendered in the `<head>` of your document.
|
|
7
7
|
*/
|
|
8
|
-
export declare function HeadContent(): Solid.JSX.Element
|
|
8
|
+
export declare function HeadContent(): Solid.JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Solid from 'solid-js';
|
|
2
|
+
import { MetaProvider } from '@solidjs/meta';
|
|
2
3
|
import { Asset } from './Asset';
|
|
3
4
|
import { useRouter } from './useRouter';
|
|
4
5
|
import { useRouterState } from './useRouterState';
|
|
@@ -50,7 +51,7 @@ export const useTags = () => {
|
|
|
50
51
|
}
|
|
51
52
|
resultMeta.reverse();
|
|
52
53
|
return resultMeta;
|
|
53
|
-
}
|
|
54
|
+
});
|
|
54
55
|
const links = useRouterState({
|
|
55
56
|
select: (state) => state.matches
|
|
56
57
|
.map((match) => match.links)
|
|
@@ -94,7 +95,7 @@ export const useTags = () => {
|
|
|
94
95
|
children,
|
|
95
96
|
})),
|
|
96
97
|
});
|
|
97
|
-
return uniqBy([
|
|
98
|
+
return () => uniqBy([
|
|
98
99
|
...meta(),
|
|
99
100
|
...preloadMeta(),
|
|
100
101
|
...links(),
|
|
@@ -109,7 +110,9 @@ export const useTags = () => {
|
|
|
109
110
|
*/
|
|
110
111
|
export function HeadContent() {
|
|
111
112
|
const tags = useTags();
|
|
112
|
-
return
|
|
113
|
+
return (<MetaProvider>
|
|
114
|
+
{tags().map((tag) => (<Asset {...tag}/>))}
|
|
115
|
+
</MetaProvider>);
|
|
113
116
|
}
|
|
114
117
|
function uniqBy(arr, fn) {
|
|
115
118
|
const seen = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadContent.jsx","sourceRoot":"","sources":["../../src/HeadContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,SAAS,GAAG,cAAc,CAAC;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClE,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAA4C,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;QAC1E,MAAM,UAAU,GAA4B,EAAE,CAAA;QAC9C,MAAM,eAAe,GAAyB,EAAE,CAAA;QAChD,IAAI,KAAmC,CACtC;QAAA,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,CAAC;YAAA,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,CAAC;oBAAE,OAAM;gBAEd,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACZ,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,KAAK,GAAG;4BACN,GAAG,EAAE,OAAO;4BACZ,QAAQ,EAAE,CAAC,CAAC,KAAK;yBAClB,CAAA;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAA;oBACtC,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC/B,OAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;wBACnC,CAAC;oBACH,CAAC;oBAED,UAAU,CAAC,IAAI,CAAC;wBACd,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE;4BACL,GAAG,CAAC;yBACL;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QAED,UAAU,CAAC,OAAO,EAAE,CAAA;QAEpB,OAAO,UAAU,CAAA;IACnB,CAAC,
|
|
1
|
+
{"version":3,"file":"HeadContent.jsx","sourceRoot":"","sources":["../../src/HeadContent.tsx"],"names":[],"mappings":"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"}
|
package/dist/source/index.d.ts
CHANGED
|
@@ -46,5 +46,5 @@ export type { NotFoundError } from './not-found';
|
|
|
46
46
|
export * from './typePrimitives';
|
|
47
47
|
export { ScriptOnce } from './ScriptOnce';
|
|
48
48
|
export { Asset } from './Asset';
|
|
49
|
-
export { HeadContent } from './HeadContent';
|
|
49
|
+
export { HeadContent, useTags } from './HeadContent';
|
|
50
50
|
export { Scripts } from './Scripts';
|
package/dist/source/index.jsx
CHANGED
|
@@ -36,6 +36,6 @@ export { notFound, isNotFound, CatchNotFound, DefaultGlobalNotFound, } from './n
|
|
|
36
36
|
export * from './typePrimitives';
|
|
37
37
|
export { ScriptOnce } from './ScriptOnce';
|
|
38
38
|
export { Asset } from './Asset';
|
|
39
|
-
export { HeadContent } from './HeadContent';
|
|
39
|
+
export { HeadContent, useTags } from './HeadContent';
|
|
40
40
|
export { Scripts } from './Scripts';
|
|
41
41
|
//# sourceMappingURL=index.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/solid-router",
|
|
3
|
-
"version": "1.112.
|
|
3
|
+
"version": "1.112.2",
|
|
4
4
|
"description": "Modern and scalable routing for Solid applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@solid-devtools/logger": "^0.9.4",
|
|
57
57
|
"@solid-primitives/refs": "^1.0.8",
|
|
58
|
+
"@solidjs/meta": "^0.29.4",
|
|
58
59
|
"@tanstack/solid-store": "^0.7.0",
|
|
59
60
|
"jsesc": "^3.0.2",
|
|
60
61
|
"tiny-invariant": "^1.3.3",
|
|
@@ -68,12 +69,12 @@
|
|
|
68
69
|
"@types/jsesc": "^3.0.3",
|
|
69
70
|
"combinate": "^1.1.11",
|
|
70
71
|
"eslint-plugin-solid": "^0.14.5",
|
|
71
|
-
"solid-js": "^1",
|
|
72
|
+
"solid-js": "^1.9.5",
|
|
72
73
|
"vite-plugin-solid": "^2.11.2",
|
|
73
74
|
"zod": "^3.23.8"
|
|
74
75
|
},
|
|
75
76
|
"peerDependencies": {
|
|
76
|
-
"solid-js": "^1"
|
|
77
|
+
"solid-js": "^1.9.5"
|
|
77
78
|
},
|
|
78
79
|
"scripts": {}
|
|
79
80
|
}
|
package/src/Asset.tsx
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { Meta, Style, Title } from '@solidjs/meta'
|
|
1
2
|
import type { RouterManagedTag } from '@tanstack/router-core'
|
|
2
3
|
|
|
3
4
|
export function Asset({ tag, attrs, children }: RouterManagedTag): any {
|
|
4
5
|
switch (tag) {
|
|
5
6
|
case 'title':
|
|
6
|
-
return <
|
|
7
|
+
return <Title {...attrs}>{children}</Title>
|
|
7
8
|
case 'meta':
|
|
8
|
-
return <
|
|
9
|
+
return <Meta {...attrs} />
|
|
9
10
|
case 'link':
|
|
10
11
|
return <link {...attrs} />
|
|
11
12
|
case 'style':
|
|
12
|
-
return <
|
|
13
|
+
return <Style {...attrs} innerHTML={children} />
|
|
13
14
|
case 'script':
|
|
14
15
|
if ((attrs as any) && (attrs as any).src) {
|
|
15
16
|
return <script {...attrs} />
|
package/src/HeadContent.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Solid from 'solid-js'
|
|
2
|
+
import { MetaProvider } from '@solidjs/meta'
|
|
2
3
|
import { Asset } from './Asset'
|
|
3
4
|
import { useRouter } from './useRouter'
|
|
4
5
|
import { useRouterState } from './useRouterState'
|
|
@@ -55,7 +56,7 @@ export const useTags = () => {
|
|
|
55
56
|
resultMeta.reverse()
|
|
56
57
|
|
|
57
58
|
return resultMeta
|
|
58
|
-
}
|
|
59
|
+
})
|
|
59
60
|
|
|
60
61
|
const links = useRouterState({
|
|
61
62
|
select: (state) =>
|
|
@@ -111,17 +112,18 @@ export const useTags = () => {
|
|
|
111
112
|
})),
|
|
112
113
|
})
|
|
113
114
|
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
115
|
+
return () =>
|
|
116
|
+
uniqBy(
|
|
117
|
+
[
|
|
118
|
+
...meta(),
|
|
119
|
+
...preloadMeta(),
|
|
120
|
+
...links(),
|
|
121
|
+
...headScripts(),
|
|
122
|
+
] as Array<RouterManagedTag>,
|
|
123
|
+
(d) => {
|
|
124
|
+
return JSON.stringify(d)
|
|
125
|
+
},
|
|
126
|
+
)
|
|
125
127
|
}
|
|
126
128
|
|
|
127
129
|
/**
|
|
@@ -130,7 +132,13 @@ export const useTags = () => {
|
|
|
130
132
|
*/
|
|
131
133
|
export function HeadContent() {
|
|
132
134
|
const tags = useTags()
|
|
133
|
-
return
|
|
135
|
+
return (
|
|
136
|
+
<MetaProvider>
|
|
137
|
+
{tags().map((tag) => (
|
|
138
|
+
<Asset {...tag} />
|
|
139
|
+
))}
|
|
140
|
+
</MetaProvider>
|
|
141
|
+
)
|
|
134
142
|
}
|
|
135
143
|
|
|
136
144
|
function uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {
|
package/src/index.tsx
CHANGED
|
@@ -350,5 +350,5 @@ export * from './typePrimitives'
|
|
|
350
350
|
export { ScriptOnce } from './ScriptOnce'
|
|
351
351
|
|
|
352
352
|
export { Asset } from './Asset'
|
|
353
|
-
export { HeadContent } from './HeadContent'
|
|
353
|
+
export { HeadContent, useTags } from './HeadContent'
|
|
354
354
|
export { Scripts } from './Scripts'
|