@tramvai/module-router 1.72.2 → 1.75.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.
- package/lib/index.browser.js +19 -6
- package/package.json +14 -14
package/lib/index.browser.js
CHANGED
|
@@ -4,10 +4,10 @@ export { Link, Provider, useNavigate, useRoute, useRouter, useUrl } from '@tinko
|
|
|
4
4
|
import { LOGGER_TOKEN, BUNDLE_MANAGER_TOKEN, ACTION_REGISTRY_TOKEN, RESPONSE_MANAGER_TOKEN, CONTEXT_TOKEN, COMPONENT_REGISTRY_TOKEN, COMBINE_REDUCERS, STORE_TOKEN, ACTION_PAGE_RUNNER_TOKEN } from '@tramvai/tokens-common';
|
|
5
5
|
import { ROUTER_GUARD_TOKEN, ROUTE_TRANSFORM_TOKEN, ROUTER_TOKEN, ROUTES_TOKEN, ROUTE_RESOLVE_TOKEN, ROUTER_SPA_ACTIONS_RUN_MODE_TOKEN, PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
|
|
6
6
|
export * from '@tramvai/tokens-router';
|
|
7
|
+
import { EXTEND_RENDER, TRAMVAI_RENDER_MODE } from '@tramvai/tokens-render';
|
|
7
8
|
import { createEvent, createReducer } from '@tramvai/state';
|
|
8
9
|
import flatten from '@tinkoff/utils/array/flatten';
|
|
9
10
|
import { createToken } from '@tinkoff/dippy';
|
|
10
|
-
import { EXTEND_RENDER } from '@tramvai/tokens-render';
|
|
11
11
|
import identity from '@tinkoff/utils/function/identity';
|
|
12
12
|
import compose from '@tinkoff/utils/function/compose';
|
|
13
13
|
import replace from '@tinkoff/utils/string/replace';
|
|
@@ -451,17 +451,23 @@ const providers = [
|
|
|
451
451
|
provide({
|
|
452
452
|
provide: commandLineListTokens.customerStart,
|
|
453
453
|
multi: true,
|
|
454
|
-
useFactory: ({ router, store }) => {
|
|
455
|
-
return function routerInit() {
|
|
454
|
+
useFactory: ({ router, store, renderMode }) => {
|
|
455
|
+
return async function routerInit() {
|
|
456
|
+
const currentRoute = store.getState(RouterStore).currentRoute;
|
|
457
|
+
// in client-side rendering mode, run navigation before hydration,
|
|
458
|
+
// because currentRoute from initialState can be undefined or incorrect
|
|
459
|
+
if (renderMode === 'client') {
|
|
460
|
+
await router.navigate(window.location.href);
|
|
461
|
+
}
|
|
456
462
|
return router.rehydrate({
|
|
457
|
-
|
|
458
|
-
to: store.getState(RouterStore).currentRoute,
|
|
463
|
+
to: currentRoute,
|
|
459
464
|
});
|
|
460
465
|
};
|
|
461
466
|
},
|
|
462
467
|
deps: {
|
|
463
468
|
router: ROUTER_TOKEN,
|
|
464
469
|
store: STORE_TOKEN,
|
|
470
|
+
renderMode: TRAMVAI_RENDER_MODE,
|
|
465
471
|
},
|
|
466
472
|
}),
|
|
467
473
|
provide({
|
|
@@ -488,12 +494,19 @@ const providers = [
|
|
|
488
494
|
// рендера реакта, т.к. экшены могут повлиять на рендер
|
|
489
495
|
provide: commandLineListTokens.clear,
|
|
490
496
|
multi: true,
|
|
491
|
-
useFactory:
|
|
497
|
+
useFactory: (deps) => {
|
|
498
|
+
// in client-side rendering mode, action already was executed
|
|
499
|
+
if (deps.renderMode === 'client') {
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
return runActionsFactory(deps);
|
|
503
|
+
},
|
|
492
504
|
deps: {
|
|
493
505
|
store: STORE_TOKEN,
|
|
494
506
|
router: ROUTER_TOKEN,
|
|
495
507
|
actionRegistry: ACTION_REGISTRY_TOKEN,
|
|
496
508
|
actionPageRunner: ACTION_PAGE_RUNNER_TOKEN,
|
|
509
|
+
renderMode: TRAMVAI_RENDER_MODE,
|
|
497
510
|
},
|
|
498
511
|
}),
|
|
499
512
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.75.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"browser": {
|
|
@@ -25,22 +25,22 @@
|
|
|
25
25
|
"@tinkoff/errors": "0.2.18",
|
|
26
26
|
"@tinkoff/router": "0.1.70",
|
|
27
27
|
"@tinkoff/url": "0.7.37",
|
|
28
|
-
"@tramvai/tokens-render": "1.
|
|
29
|
-
"@tramvai/tokens-router": "1.
|
|
30
|
-
"@tramvai/tokens-server": "1.
|
|
31
|
-
"@tramvai/experiments": "1.
|
|
28
|
+
"@tramvai/tokens-render": "1.75.0",
|
|
29
|
+
"@tramvai/tokens-router": "1.75.0",
|
|
30
|
+
"@tramvai/tokens-server": "1.75.0",
|
|
31
|
+
"@tramvai/experiments": "1.75.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@tinkoff/utils": "^2.1.2",
|
|
35
|
-
"@tramvai/cli": "1.
|
|
36
|
-
"@tramvai/core": "1.
|
|
37
|
-
"@tramvai/module-log": "1.
|
|
38
|
-
"@tramvai/module-server": "1.
|
|
39
|
-
"@tramvai/papi": "1.
|
|
40
|
-
"@tramvai/state": "1.
|
|
41
|
-
"@tramvai/test-helpers": "1.
|
|
42
|
-
"@tramvai/test-mocks": "1.
|
|
43
|
-
"@tramvai/tokens-common": "1.
|
|
35
|
+
"@tramvai/cli": "1.75.0",
|
|
36
|
+
"@tramvai/core": "1.75.0",
|
|
37
|
+
"@tramvai/module-log": "1.75.0",
|
|
38
|
+
"@tramvai/module-server": "1.75.0",
|
|
39
|
+
"@tramvai/papi": "1.75.0",
|
|
40
|
+
"@tramvai/state": "1.75.0",
|
|
41
|
+
"@tramvai/test-helpers": "1.75.0",
|
|
42
|
+
"@tramvai/test-mocks": "1.75.0",
|
|
43
|
+
"@tramvai/tokens-common": "1.75.0",
|
|
44
44
|
"@tinkoff/dippy": "0.7.38",
|
|
45
45
|
"react": "*",
|
|
46
46
|
"tslib": "^2.0.3"
|