vike-react 0.3.5 → 0.3.6
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/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
# `vike-react`
|
7
7
|
|
8
|
-
React integration for [Vike](https://vike.dev)
|
8
|
+
React integration for [Vike](https://vike.dev).
|
9
9
|
|
10
10
|
> For integrations with Vue and Solid, see the other [`vike-*` packages](https://vike.dev/vike-packages).
|
11
11
|
|
@@ -44,6 +44,17 @@ declare const _default: {
|
|
44
44
|
};
|
45
45
|
effect: ConfigEffect;
|
46
46
|
};
|
47
|
+
stream: {
|
48
|
+
env: {
|
49
|
+
server: true;
|
50
|
+
};
|
51
|
+
};
|
52
|
+
VikeReactQueryWrapper: {
|
53
|
+
env: {
|
54
|
+
client: true;
|
55
|
+
server: true;
|
56
|
+
};
|
57
|
+
};
|
47
58
|
};
|
48
59
|
};
|
49
60
|
export default _default;
|
@@ -81,6 +92,14 @@ declare global {
|
|
81
92
|
*
|
82
93
|
*/
|
83
94
|
ssr?: boolean;
|
95
|
+
/**
|
96
|
+
* Whether to stream the page's HTML. Requires Server-Side Rendering (`ssr: true`).
|
97
|
+
*
|
98
|
+
* @default false
|
99
|
+
*
|
100
|
+
*/
|
101
|
+
stream?: boolean;
|
102
|
+
VikeReactQueryWrapper?: Component;
|
84
103
|
}
|
85
104
|
}
|
86
105
|
}
|
package/dist/renderer/+config.js
CHANGED
@@ -2,18 +2,20 @@ export { getPageElement };
|
|
2
2
|
import React from 'react';
|
3
3
|
import { PageContextProvider } from './PageContextProvider.js';
|
4
4
|
function getPageElement(pageContext) {
|
5
|
-
var _a;
|
5
|
+
var _a, _b;
|
6
6
|
const Layout = (_a = pageContext.config.Layout) !== null && _a !== void 0 ? _a : PassThrough;
|
7
7
|
const Wrapper =
|
8
8
|
/* Should we implement this? Enabling users to defined a wrapper that is used across all layouts.
|
9
9
|
pageContext.config.Wrapper ??
|
10
10
|
*/
|
11
11
|
PassThrough;
|
12
|
+
const VikeReactQueryWrapper = (_b = pageContext.config.VikeReactQueryWrapper) !== null && _b !== void 0 ? _b : PassThrough;
|
12
13
|
const { Page, pageProps } = pageContext;
|
13
14
|
const page = (React.createElement(React.StrictMode, null,
|
14
15
|
React.createElement(PageContextProvider, { pageContext: pageContext },
|
15
|
-
React.createElement(
|
16
|
-
React.createElement(
|
16
|
+
React.createElement(VikeReactQueryWrapper, { pageContext: pageContext },
|
17
|
+
React.createElement(Wrapper, null,
|
18
|
+
React.createElement(Layout, null, Page ? React.createElement(Page, { ...pageProps }) : null))))));
|
17
19
|
return page;
|
18
20
|
}
|
19
21
|
function PassThrough({ children }) {
|
@@ -10,20 +10,26 @@ import React from 'react';
|
|
10
10
|
checkVikeVersion();
|
11
11
|
const onRenderHtml = async (pageContext) => {
|
12
12
|
const lang = pageContext.config.lang || 'en';
|
13
|
-
const { favicon } = pageContext.config;
|
13
|
+
const { stream, favicon, description } = pageContext.config;
|
14
14
|
const faviconTag = !favicon ? '' : escapeInject `<link rel="icon" href="${favicon}" />`;
|
15
|
+
const descriptionTag = !description ? '' : escapeInject `<meta name="description" content="${description}" />`;
|
15
16
|
const title = getTitle(pageContext);
|
16
17
|
const titleTag = !title ? '' : escapeInject `<title>${title}</title>`;
|
17
|
-
const { description } = pageContext.config;
|
18
|
-
const descriptionTag = !description ? '' : escapeInject `<meta name="description" content="${description}" />`;
|
19
18
|
const Head = pageContext.config.Head || (() => React.createElement(React.Fragment, null));
|
20
19
|
const head = (React.createElement(React.StrictMode, null,
|
21
20
|
React.createElement(PageContextProvider, { pageContext: pageContext },
|
22
21
|
React.createElement(Head, null))));
|
23
22
|
const headHtml = dangerouslySkipEscape(renderToString(head));
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
let pageView;
|
24
|
+
if (!pageContext.Page) {
|
25
|
+
pageView = '';
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
const page = getPageElement(pageContext);
|
29
|
+
pageView = !stream
|
30
|
+
? dangerouslySkipEscape(renderToString(page))
|
31
|
+
: await renderToStream(page, { userAgent: pageContext.userAgent });
|
32
|
+
}
|
27
33
|
const documentHtml = escapeInject `<!DOCTYPE html>
|
28
34
|
<html lang='${lang}'>
|
29
35
|
<head>
|
@@ -34,7 +40,7 @@ const onRenderHtml = async (pageContext) => {
|
|
34
40
|
${headHtml}
|
35
41
|
</head>
|
36
42
|
<body>
|
37
|
-
<div id="page-view">${
|
43
|
+
<div id="page-view">${pageView}</div>
|
38
44
|
</body>
|
39
45
|
<!-- built with https://github.com/vikejs/vike-react -->
|
40
46
|
</html>`;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "vike-react",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.6",
|
4
4
|
"type": "module",
|
5
5
|
"main": "./dist/renderer/+config.js",
|
6
6
|
"types": "./dist/renderer/+config.d.ts",
|
@@ -14,24 +14,24 @@
|
|
14
14
|
"scripts": {
|
15
15
|
"dev": "tsc --watch",
|
16
16
|
"build": "rm -rf dist/ && tsc",
|
17
|
-
"release": "release-me patch",
|
18
|
-
"release:commit": "release-me commit"
|
17
|
+
"release": "release-me --git-prefix vike-react --changelog-dir packages/vike-react/ patch",
|
18
|
+
"release:commit": "release-me --git-prefix vike-react --changelog-dir packages/vike-react/ commit"
|
19
19
|
},
|
20
20
|
"peerDependencies": {
|
21
21
|
"react": "18.x.x",
|
22
22
|
"react-dom": "18.x.x",
|
23
|
-
"vike": "^0.4.
|
23
|
+
"vike": "^0.4.149",
|
24
24
|
"vite": "^4.3.8"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
27
|
-
"@brillout/release-me": "^0.1.
|
27
|
+
"@brillout/release-me": "^0.1.12",
|
28
28
|
"@types/node": "^18.17.18",
|
29
29
|
"@types/react": "^18.2.22",
|
30
30
|
"@types/react-dom": "^18.2.7",
|
31
31
|
"react": "^18.2.0",
|
32
32
|
"react-dom": "^18.2.0",
|
33
33
|
"typescript": "^5.2.2",
|
34
|
-
"vike": "^0.4.
|
34
|
+
"vike": "^0.4.149"
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
37
|
"react-streaming": "^0.3.16"
|