vike-react 0.4.5 → 0.4.6-commit-3a89c35

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/+config.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ssrEffect } from './renderer/ssrEffect.js';
2
2
  import './types/index.js';
3
3
  declare const _default: {
4
+ name: string;
4
5
  onRenderHtml: "import:vike-react/renderer/onRenderHtml:onRenderHtml";
5
6
  onRenderClient: "import:vike-react/renderer/onRenderClient:onRenderClient";
6
7
  passToClient: string[];
@@ -47,6 +48,11 @@ declare const _default: {
47
48
  server: true;
48
49
  };
49
50
  };
51
+ onAfterRenderClient: {
52
+ env: {
53
+ client: true;
54
+ };
55
+ };
50
56
  VikeReactQueryWrapper: {
51
57
  env: {
52
58
  client: true;
@@ -59,6 +65,11 @@ declare const _default: {
59
65
  server: true;
60
66
  };
61
67
  };
68
+ name: {
69
+ env: {
70
+ config: true;
71
+ };
72
+ };
62
73
  };
63
74
  };
64
75
  export default _default;
package/dist/+config.js CHANGED
@@ -3,6 +3,8 @@ import { ssrEffect } from './renderer/ssrEffect.js';
3
3
  // This is required to make TypeScript load the global interfaces such as Vike.PageContext so that they're always loaded: we can assume that the user always imports this file over `import vikeReact from 'vike-react/config'`
4
4
  import './types/index.js';
5
5
  export default {
6
+ // @ts-ignore Remove this ts-ignore once Vike's new version is released.
7
+ name: 'vike-react',
6
8
  // https://vike.dev/onRenderHtml
7
9
  onRenderHtml: 'import:vike-react/renderer/onRenderHtml:onRenderHtml',
8
10
  // https://vike.dev/onRenderClient
@@ -38,11 +40,18 @@ export default {
38
40
  stream: {
39
41
  env: { server: true }
40
42
  },
43
+ onAfterRenderClient: {
44
+ env: { client: true }
45
+ },
41
46
  VikeReactQueryWrapper: {
42
47
  env: { client: true, server: true }
43
48
  },
44
49
  Wrapper: {
45
50
  env: { client: true, server: true }
51
+ },
52
+ // Vike already defines the setting 'name', but we redundantly define it here for older Vike versions (otherwise older Vike versions will complain that 'name` is an unknown config).
53
+ name: {
54
+ env: { config: true }
46
55
  }
47
56
  }
48
57
  };
@@ -32,6 +32,9 @@ const onRenderClient = (pageContext) => {
32
32
  }
33
33
  root.render(page);
34
34
  }
35
+ pageContext.page = page;
36
+ pageContext.root = root;
37
+ pageContext.config.onAfterRenderClient?.(pageContext);
35
38
  };
36
39
  // https://stackoverflow.com/questions/260857/changing-website-favicon-dynamically/260876#260876
37
40
  function setFavicon(faviconUrl) {
@@ -1,3 +1,4 @@
1
+ import type { PageContextClient } from 'vike/types';
1
2
  declare global {
2
3
  namespace VikePackages {
3
4
  interface ConfigVikeReact {
@@ -38,9 +39,14 @@ declare global {
38
39
  *
39
40
  */
40
41
  stream?: boolean;
42
+ /**
43
+ * Client-side hook called after the page is rendered.
44
+ */
45
+ onAfterRenderClient?: (pageContext: PageContextClient) => void;
41
46
  VikeReactQueryWrapper?: React.ReactNode;
42
- Wrapper?: () => React.ReactNode;
47
+ Wrapper?: (props: {
48
+ children: React.ReactNode;
49
+ }) => React.ReactNode;
43
50
  }
44
51
  }
45
52
  }
46
- export {};
@@ -1,9 +1,17 @@
1
+ import type React from 'react';
2
+ import type { JSX } from 'react';
3
+ import type ReactDOM from 'react-dom/client';
1
4
  declare global {
2
5
  namespace Vike {
3
6
  interface PageContext {
7
+ /** The root React component of the page */
4
8
  Page?: () => React.ReactNode;
9
+ /** The user agent string of the user's browser */
5
10
  userAgent?: string;
11
+ /** The root React element of the page */
12
+ page?: JSX.Element;
13
+ /** The React root DOM container */
14
+ root?: ReactDOM.Root;
6
15
  }
7
16
  }
8
17
  }
9
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike-react",
3
- "version": "0.4.5",
3
+ "version": "0.4.6-commit-3a89c35",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",