@tramvai/module-render 2.47.2 → 2.48.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 (2) hide show
  1. package/lib/browser.js +21 -8
  2. package/package.json +15 -15
package/lib/browser.js CHANGED
@@ -99,9 +99,11 @@ function renderReact({ di }, context) {
99
99
  }
100
100
 
101
101
  let hydrateRoot;
102
+ let startTransition;
102
103
  try {
103
104
  // eslint-disable-next-line import/no-unresolved, import/extensions
104
105
  hydrateRoot = require('react-dom/client').hydrateRoot;
106
+ startTransition = require('react').startTransition;
105
107
  }
106
108
  catch { }
107
109
  const ExecuteRenderCallback = ({ children, callback, }) => {
@@ -113,14 +115,16 @@ const ExecuteRenderCallback = ({ children, callback, }) => {
113
115
  const renderer = ({ element, container, callback, log }) => {
114
116
  if (process.env.__TRAMVAI_CONCURRENT_FEATURES && typeof hydrateRoot === 'function') {
115
117
  const wrappedElement = createElement(ExecuteRenderCallback, { callback }, element);
116
- return hydrateRoot(container, wrappedElement, {
117
- onRecoverableError: (error, errorInfo) => {
118
- log.error({
119
- event: 'hydrate:recover-after-error',
120
- error,
121
- errorInfo,
122
- });
123
- },
118
+ return startTransition(() => {
119
+ hydrateRoot(container, wrappedElement, {
120
+ onRecoverableError: (error, errorInfo) => {
121
+ log.error({
122
+ event: 'hydrate:recover-after-error',
123
+ error,
124
+ errorInfo,
125
+ });
126
+ },
127
+ });
124
128
  });
125
129
  }
126
130
  const { hydrate } = require('react-dom');
@@ -290,6 +294,15 @@ RenderModule = RenderModule_1 = __decorate([
290
294
  },
291
295
  multi: true,
292
296
  }),
297
+ provide({
298
+ provide: RENDERER_CALLBACK,
299
+ useFactory: ({ consumerContext }) => () => {
300
+ consumerContext.di.register({ provide: '__TRAMVAI_HYDRATED', useValue: true });
301
+ },
302
+ deps: {
303
+ consumerContext: CONTEXT_TOKEN,
304
+ },
305
+ }),
293
306
  provide({
294
307
  provide: USE_REACT_STRICT_MODE,
295
308
  useFactory: ({ deprecatedMode }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-render",
3
- "version": "2.47.2",
3
+ "version": "2.48.0",
4
4
  "description": "",
5
5
  "browser": "lib/browser.js",
6
6
  "main": "lib/server.js",
@@ -26,13 +26,13 @@
26
26
  "@tinkoff/htmlpagebuilder": "0.5.5",
27
27
  "@tinkoff/layout-factory": "0.3.4",
28
28
  "@tinkoff/url": "0.8.4",
29
- "@tinkoff/user-agent": "0.4.106",
30
- "@tramvai/module-client-hints": "2.47.2",
31
- "@tramvai/module-router": "2.47.2",
32
- "@tramvai/react": "2.47.2",
29
+ "@tinkoff/user-agent": "0.4.109",
30
+ "@tramvai/module-client-hints": "2.48.0",
31
+ "@tramvai/module-router": "2.48.0",
32
+ "@tramvai/react": "2.48.0",
33
33
  "@tramvai/safe-strings": "0.5.5",
34
- "@tramvai/tokens-render": "2.47.2",
35
- "@tramvai/experiments": "2.47.2",
34
+ "@tramvai/tokens-render": "2.48.0",
35
+ "@tramvai/experiments": "2.48.0",
36
36
  "@types/loadable__server": "^5.12.6",
37
37
  "node-fetch": "^2.6.1"
38
38
  },
@@ -40,14 +40,14 @@
40
40
  "@tinkoff/dippy": "0.8.9",
41
41
  "@tinkoff/utils": "^2.1.2",
42
42
  "@tinkoff/react-hooks": "0.1.4",
43
- "@tramvai/cli": "2.47.2",
44
- "@tramvai/core": "2.47.2",
45
- "@tramvai/module-common": "2.47.2",
46
- "@tramvai/state": "2.47.2",
47
- "@tramvai/test-helpers": "2.47.2",
48
- "@tramvai/tokens-common": "2.47.2",
49
- "@tramvai/tokens-router": "2.47.2",
50
- "@tramvai/tokens-server-private": "2.47.2",
43
+ "@tramvai/cli": "2.48.0",
44
+ "@tramvai/core": "2.48.0",
45
+ "@tramvai/module-common": "2.48.0",
46
+ "@tramvai/state": "2.48.0",
47
+ "@tramvai/test-helpers": "2.48.0",
48
+ "@tramvai/tokens-common": "2.48.0",
49
+ "@tramvai/tokens-router": "2.48.0",
50
+ "@tramvai/tokens-server-private": "2.48.0",
51
51
  "express": "^4.17.1",
52
52
  "prop-types": "^15.6.2",
53
53
  "react": ">=16.14.0",