@tramvai/module-router 1.74.0 → 1.76.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/index.browser.js +19 -6
  2. package/package.json +14 -14
@@ -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
- // @todo разобраться, почему не подходит тип Route
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: runActionsFactory,
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.74.0",
3
+ "version": "1.76.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.74.0",
29
- "@tramvai/tokens-router": "1.74.0",
30
- "@tramvai/tokens-server": "1.74.0",
31
- "@tramvai/experiments": "1.74.0"
28
+ "@tramvai/tokens-render": "1.76.0",
29
+ "@tramvai/tokens-router": "1.76.0",
30
+ "@tramvai/tokens-server": "1.76.0",
31
+ "@tramvai/experiments": "1.76.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@tinkoff/utils": "^2.1.2",
35
- "@tramvai/cli": "1.74.0",
36
- "@tramvai/core": "1.74.0",
37
- "@tramvai/module-log": "1.74.0",
38
- "@tramvai/module-server": "1.74.0",
39
- "@tramvai/papi": "1.74.0",
40
- "@tramvai/state": "1.74.0",
41
- "@tramvai/test-helpers": "1.74.0",
42
- "@tramvai/test-mocks": "1.74.0",
43
- "@tramvai/tokens-common": "1.74.0",
35
+ "@tramvai/cli": "1.76.0",
36
+ "@tramvai/core": "1.76.0",
37
+ "@tramvai/module-log": "1.76.0",
38
+ "@tramvai/module-server": "1.76.0",
39
+ "@tramvai/papi": "1.76.0",
40
+ "@tramvai/state": "1.76.0",
41
+ "@tramvai/test-helpers": "1.76.0",
42
+ "@tramvai/test-mocks": "1.76.0",
43
+ "@tramvai/tokens-common": "1.76.0",
44
44
  "@tinkoff/dippy": "0.7.38",
45
45
  "react": "*",
46
46
  "tslib": "^2.0.3"