reactive-route 0.0.1-alpha.30 → 0.0.1-alpha.31

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/core/index.d.ts CHANGED
@@ -10,4 +10,5 @@ export { history } from './utils/history';
10
10
  export { loadComponentToConfig } from './utils/loadComponentToConfig';
11
11
  export { RedirectError } from './utils/RedirectError';
12
12
  export { replaceDynamicValues } from './utils/replaceDynamicValues';
13
+ export { routerSetLoadedComponent } from './utils/routerSetLoadedComponent';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { TypePropsRouter } from '../types/TypePropsRouter';
2
+ export declare function routerSetLoadedComponent(props: TypePropsRouter<any>, config: {
3
+ loadedComponentName?: any;
4
+ loadedComponentPage?: string;
5
+ currentProps: Record<string, any>;
6
+ }): void;
7
+ //# sourceMappingURL=routerSetLoadedComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routerSetLoadedComponent.d.ts","sourceRoot":"","sources":["../../../packages/core/utils/routerSetLoadedComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,EAC3B,MAAM,EAAE;IACN,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC,QA8BF"}
package/index.cjs CHANGED
@@ -25,7 +25,8 @@ __export(core_exports, {
25
25
  createRoutes: () => createRoutes,
26
26
  history: () => history,
27
27
  loadComponentToConfig: () => loadComponentToConfig,
28
- replaceDynamicValues: () => replaceDynamicValues
28
+ replaceDynamicValues: () => replaceDynamicValues,
29
+ routerSetLoadedComponent: () => routerSetLoadedComponent
29
30
  });
30
31
  module.exports = __toCommonJS(core_exports);
31
32
 
@@ -377,3 +378,29 @@ function addNames(obj) {
377
378
  function createRoutes(config) {
378
379
  return addNames(config);
379
380
  }
381
+
382
+ // packages/core/utils/routerSetLoadedComponent.ts
383
+ function routerSetLoadedComponent(props, config) {
384
+ const currentRouteName = props.router.currentRoute.name;
385
+ const currentRoutePage = props.router.currentRoute.pageId;
386
+ const componentConfig = props.router.routes[currentRouteName];
387
+ let preventRedirect = false;
388
+ if (props.router.isRedirecting) preventRedirect = true;
389
+ else if (config.loadedComponentName === currentRouteName) preventRedirect = true;
390
+ else if (config.loadedComponentPage != null && currentRouteName != null) {
391
+ if (config.loadedComponentPage === currentRoutePage) {
392
+ props.router.adapters.batch(() => {
393
+ config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
394
+ });
395
+ preventRedirect = true;
396
+ }
397
+ }
398
+ if (preventRedirect) return;
399
+ props.router.adapters.batch(() => {
400
+ if (config.loadedComponentName) props.beforeUpdatePageComponent?.();
401
+ props.beforeSetPageComponent?.(componentConfig);
402
+ config.currentProps = "props" in componentConfig ? componentConfig.props : {};
403
+ config.loadedComponentName = currentRouteName;
404
+ config.loadedComponentPage = componentConfig.pageId;
405
+ });
406
+ }
package/index.mjs CHANGED
@@ -346,11 +346,38 @@ function addNames(obj) {
346
346
  function createRoutes(config) {
347
347
  return addNames(config);
348
348
  }
349
+
350
+ // packages/core/utils/routerSetLoadedComponent.ts
351
+ function routerSetLoadedComponent(props, config) {
352
+ const currentRouteName = props.router.currentRoute.name;
353
+ const currentRoutePage = props.router.currentRoute.pageId;
354
+ const componentConfig = props.router.routes[currentRouteName];
355
+ let preventRedirect = false;
356
+ if (props.router.isRedirecting) preventRedirect = true;
357
+ else if (config.loadedComponentName === currentRouteName) preventRedirect = true;
358
+ else if (config.loadedComponentPage != null && currentRouteName != null) {
359
+ if (config.loadedComponentPage === currentRoutePage) {
360
+ props.router.adapters.batch(() => {
361
+ config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
362
+ });
363
+ preventRedirect = true;
364
+ }
365
+ }
366
+ if (preventRedirect) return;
367
+ props.router.adapters.batch(() => {
368
+ if (config.loadedComponentName) props.beforeUpdatePageComponent?.();
369
+ props.beforeSetPageComponent?.(componentConfig);
370
+ config.currentProps = "props" in componentConfig ? componentConfig.props : {};
371
+ config.loadedComponentName = currentRouteName;
372
+ config.loadedComponentPage = componentConfig.pageId;
373
+ });
374
+ }
349
375
  export {
350
376
  RedirectError,
351
377
  createRouter,
352
378
  createRoutes,
353
379
  history,
354
380
  loadComponentToConfig,
355
- replaceDynamicValues
381
+ replaceDynamicValues,
382
+ routerSetLoadedComponent
356
383
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "reactive-route",
3
3
  "author": "Dmitry Kazakov",
4
4
  "license": "MIT",
5
- "version": "0.0.1-alpha.30",
5
+ "version": "0.0.1-alpha.31",
6
6
  "description": "Reactive Router for different frameworks",
7
7
  "repository": {
8
8
  "type": "git",
@@ -20,6 +20,11 @@
20
20
  "require": "./index.cjs",
21
21
  "import": "./index.mjs"
22
22
  },
23
+ "./solid": {
24
+ "types": "./solid/index.d.ts",
25
+ "require": "./solid/index.cjs",
26
+ "import": "./solid/index.mjs"
27
+ },
23
28
  "./react": {
24
29
  "types": "./react/index.d.ts",
25
30
  "require": "./react/index.cjs",
@@ -30,21 +35,11 @@
30
35
  "require": "./preact/index.cjs",
31
36
  "import": "./preact/index.mjs"
32
37
  },
33
- "./solid": {
34
- "types": "./solid/index.d.ts",
35
- "require": "./solid/index.cjs",
36
- "import": "./solid/index.mjs"
37
- },
38
38
  "./vue": {
39
39
  "types": "./vue/index.d.ts",
40
40
  "require": "./vue/index.cjs",
41
41
  "import": "./vue/index.mjs"
42
42
  },
43
- "./adapters/vue": {
44
- "types": "./adapters/vue.d.ts",
45
- "require": "./adapters/vue.cjs",
46
- "import": "./adapters/vue.mjs"
47
- },
48
43
  "./adapters/mobx-react": {
49
44
  "types": "./adapters/mobx-react.d.ts",
50
45
  "require": "./adapters/mobx-react.cjs",
@@ -70,15 +65,20 @@
70
65
  "require": "./adapters/kr-observable-react.cjs",
71
66
  "import": "./adapters/kr-observable-react.mjs"
72
67
  },
68
+ "./adapters/kr-observable-preact": {
69
+ "types": "./adapters/kr-observable-preact.d.ts",
70
+ "require": "./adapters/kr-observable-preact.cjs",
71
+ "import": "./adapters/kr-observable-preact.mjs"
72
+ },
73
73
  "./adapters/kr-observable-solid": {
74
74
  "types": "./adapters/kr-observable-solid.d.ts",
75
75
  "require": "./adapters/kr-observable-solid.cjs",
76
76
  "import": "./adapters/kr-observable-solid.mjs"
77
77
  },
78
- "./adapters/kr-observable-preact": {
79
- "types": "./adapters/kr-observable-preact.d.ts",
80
- "require": "./adapters/kr-observable-preact.cjs",
81
- "import": "./adapters/kr-observable-preact.mjs"
78
+ "./adapters/vue": {
79
+ "types": "./adapters/vue.d.ts",
80
+ "require": "./adapters/vue.cjs",
81
+ "import": "./adapters/vue.mjs"
82
82
  }
83
83
  },
84
84
  "main": "./index.cjs",
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/preact/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgGrE,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAK1D,GAAG,CACzC"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/preact/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqC,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmE/F,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAK1D,GAAG,CACzC"}
package/preact/index.cjs CHANGED
@@ -51,36 +51,14 @@ function RouterInner(props) {
51
51
  currentProps: {}
52
52
  })
53
53
  );
54
- const setLoadedComponent = (0, import_hooks.useCallback)(() => {
55
- const { loadedComponentName, loadedComponentPage } = config;
56
- const { currentRoute, isRedirecting } = props.router;
57
- const componentConfig = props.router.routes[currentRoute.name];
58
- let preventRedirect = false;
59
- if (isRedirecting) preventRedirect = true;
60
- else if (loadedComponentName === currentRoute.name) preventRedirect = true;
61
- else if (loadedComponentPage != null && currentRoute.name != null) {
62
- if (loadedComponentPage === currentRoute.pageId) {
63
- props.router.adapters.batch(() => {
64
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
65
- });
66
- preventRedirect = true;
67
- }
68
- }
69
- if (preventRedirect) return;
70
- props.router.adapters.batch(() => {
71
- if (loadedComponentName) props.beforeUpdatePageComponent?.();
72
- props.beforeSetPageComponent?.(componentConfig);
73
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
74
- config.loadedComponentName = currentRoute.name;
75
- config.loadedComponentPage = componentConfig.pageId;
76
- });
77
- }, []);
78
54
  (0, import_hooks.useState)(() => {
79
55
  props.router.adapters.batch(() => {
80
56
  props.beforeMount?.();
81
57
  redirectOnHistoryPop();
82
- setLoadedComponent();
83
- disposerRef.current = props.router.adapters.autorun(setLoadedComponent);
58
+ (0, import_reactive_route.routerSetLoadedComponent)(props, config);
59
+ disposerRef.current = props.router.adapters.autorun(
60
+ () => (0, import_reactive_route.routerSetLoadedComponent)(props, config)
61
+ );
84
62
  });
85
63
  });
86
64
  (0, import_hooks.useEffect)(() => {
package/preact/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // packages/preact/Router.tsx
2
2
  import { useCallback, useEffect, useRef, useState } from "preact/hooks";
3
- import { history } from "reactive-route";
3
+ import { history, routerSetLoadedComponent } from "reactive-route";
4
4
  import { jsx } from "preact/jsx-runtime";
5
5
  function RouterInner(props) {
6
6
  const disposerRef = useRef(null);
@@ -25,36 +25,14 @@ function RouterInner(props) {
25
25
  currentProps: {}
26
26
  })
27
27
  );
28
- const setLoadedComponent = useCallback(() => {
29
- const { loadedComponentName, loadedComponentPage } = config;
30
- const { currentRoute, isRedirecting } = props.router;
31
- const componentConfig = props.router.routes[currentRoute.name];
32
- let preventRedirect = false;
33
- if (isRedirecting) preventRedirect = true;
34
- else if (loadedComponentName === currentRoute.name) preventRedirect = true;
35
- else if (loadedComponentPage != null && currentRoute.name != null) {
36
- if (loadedComponentPage === currentRoute.pageId) {
37
- props.router.adapters.batch(() => {
38
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
39
- });
40
- preventRedirect = true;
41
- }
42
- }
43
- if (preventRedirect) return;
44
- props.router.adapters.batch(() => {
45
- if (loadedComponentName) props.beforeUpdatePageComponent?.();
46
- props.beforeSetPageComponent?.(componentConfig);
47
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
48
- config.loadedComponentName = currentRoute.name;
49
- config.loadedComponentPage = componentConfig.pageId;
50
- });
51
- }, []);
52
28
  useState(() => {
53
29
  props.router.adapters.batch(() => {
54
30
  props.beforeMount?.();
55
31
  redirectOnHistoryPop();
56
- setLoadedComponent();
57
- disposerRef.current = props.router.adapters.autorun(setLoadedComponent);
32
+ routerSetLoadedComponent(props, config);
33
+ disposerRef.current = props.router.adapters.autorun(
34
+ () => routerSetLoadedComponent(props, config)
35
+ );
58
36
  });
59
37
  });
60
38
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/react/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgGrE,iBAAS,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAK1D,GAAG,CACzC;AAED,eAAO,MAAM,MAAM,EAA0B,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/react/Router.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqC,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmE/F,iBAAS,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAK1D,GAAG,CACzC;AAED,eAAO,MAAM,MAAM,EAA0B,OAAO,aAAa,CAAC"}
package/react/index.cjs CHANGED
@@ -51,36 +51,14 @@ function RouterInner(props) {
51
51
  currentProps: {}
52
52
  })
53
53
  );
54
- const setLoadedComponent = (0, import_react.useCallback)(() => {
55
- const { loadedComponentName, loadedComponentPage } = config;
56
- const { currentRoute, isRedirecting } = props.router;
57
- const componentConfig = props.router.routes[currentRoute.name];
58
- let preventRedirect = false;
59
- if (isRedirecting) preventRedirect = true;
60
- else if (loadedComponentName === currentRoute.name) preventRedirect = true;
61
- else if (loadedComponentPage != null && currentRoute.name != null) {
62
- if (loadedComponentPage === currentRoute.pageId) {
63
- props.router.adapters.batch(() => {
64
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
65
- });
66
- preventRedirect = true;
67
- }
68
- }
69
- if (preventRedirect) return;
70
- props.router.adapters.batch(() => {
71
- if (loadedComponentName) props.beforeUpdatePageComponent?.();
72
- props.beforeSetPageComponent?.(componentConfig);
73
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
74
- config.loadedComponentName = currentRoute.name;
75
- config.loadedComponentPage = componentConfig.pageId;
76
- });
77
- }, []);
78
54
  (0, import_react.useState)(() => {
79
55
  props.router.adapters.batch(() => {
80
56
  props.beforeMount?.();
81
57
  redirectOnHistoryPop();
82
- setLoadedComponent();
83
- disposerRef.current = props.router.adapters.autorun(setLoadedComponent);
58
+ (0, import_reactive_route.routerSetLoadedComponent)(props, config);
59
+ disposerRef.current = props.router.adapters.autorun(
60
+ () => (0, import_reactive_route.routerSetLoadedComponent)(props, config)
61
+ );
84
62
  });
85
63
  });
86
64
  (0, import_react.useEffect)(() => {
package/react/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // packages/react/Router.tsx
2
2
  import { memo, useCallback, useEffect, useRef, useState } from "react";
3
- import { history } from "reactive-route";
3
+ import { history, routerSetLoadedComponent } from "reactive-route";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  function RouterInner(props) {
6
6
  const disposerRef = useRef(null);
@@ -25,36 +25,14 @@ function RouterInner(props) {
25
25
  currentProps: {}
26
26
  })
27
27
  );
28
- const setLoadedComponent = useCallback(() => {
29
- const { loadedComponentName, loadedComponentPage } = config;
30
- const { currentRoute, isRedirecting } = props.router;
31
- const componentConfig = props.router.routes[currentRoute.name];
32
- let preventRedirect = false;
33
- if (isRedirecting) preventRedirect = true;
34
- else if (loadedComponentName === currentRoute.name) preventRedirect = true;
35
- else if (loadedComponentPage != null && currentRoute.name != null) {
36
- if (loadedComponentPage === currentRoute.pageId) {
37
- props.router.adapters.batch(() => {
38
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
39
- });
40
- preventRedirect = true;
41
- }
42
- }
43
- if (preventRedirect) return;
44
- props.router.adapters.batch(() => {
45
- if (loadedComponentName) props.beforeUpdatePageComponent?.();
46
- props.beforeSetPageComponent?.(componentConfig);
47
- config.currentProps = "props" in componentConfig ? componentConfig.props || {} : {};
48
- config.loadedComponentName = currentRoute.name;
49
- config.loadedComponentPage = componentConfig.pageId;
50
- });
51
- }, []);
52
28
  useState(() => {
53
29
  props.router.adapters.batch(() => {
54
30
  props.beforeMount?.();
55
31
  redirectOnHistoryPop();
56
- setLoadedComponent();
57
- disposerRef.current = props.router.adapters.autorun(setLoadedComponent);
32
+ routerSetLoadedComponent(props, config);
33
+ disposerRef.current = props.router.adapters.autorun(
34
+ () => routerSetLoadedComponent(props, config)
35
+ );
58
36
  });
59
37
  });
60
38
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/solid/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIrE,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,kCAwGhG"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../packages/solid/Router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI/F,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,kCAwDhG"}
package/solid/index.cjs CHANGED
@@ -36,7 +36,6 @@ function Router(props) {
36
36
  loadedComponentPage: void 0,
37
37
  currentProps: {}
38
38
  });
39
- let currentProps = {};
40
39
  function redirectOnHistoryPop() {
41
40
  if (!import_reactive_route.history) return;
42
41
  import_reactive_route.history.listen((params) => {
@@ -51,43 +50,14 @@ function Router(props) {
51
50
  });
52
51
  });
53
52
  }
54
- function setLoadedComponent() {
55
- const currentRouteName = props.router.currentRoute.name;
56
- const currentRoutePage = props.router.currentRoute.pageId;
57
- const componentConfig = props.router.routes[currentRouteName];
58
- let preventRedirect = false;
59
- if (props.router.isRedirecting) preventRedirect = true;
60
- else if (config.loadedComponentName === currentRouteName) {
61
- preventRedirect = true;
62
- } else if (config.loadedComponentPage != null && currentRouteName != null) {
63
- if (config.loadedComponentPage === currentRoutePage) {
64
- props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
65
- currentProps = "props" in componentConfig ? componentConfig.props : {};
66
- preventRedirect = true;
67
- }
68
- }
69
- if (preventRedirect) return;
70
- props.router.adapters.batch(() => {
71
- if (config.loadedComponentName) {
72
- props.beforeUpdatePageComponent?.();
73
- }
74
- props.beforeSetPageComponent?.(componentConfig);
75
- props.router.adapters.batch(() => {
76
- props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
77
- currentProps = "props" in componentConfig ? componentConfig.props : {};
78
- config.loadedComponentName = currentRouteName;
79
- config.loadedComponentPage = componentConfig.pageId;
80
- });
81
- });
82
- }
83
53
  props.beforeMount?.();
84
54
  redirectOnHistoryPop();
85
55
  if (props.router.adapters.immediateSetComponent) {
86
56
  props.router.adapters.batch(() => {
87
- setLoadedComponent();
57
+ (0, import_reactive_route.routerSetLoadedComponent)(props, config);
88
58
  });
89
59
  }
90
- props.router.adapters.autorun(() => setLoadedComponent());
60
+ props.router.adapters.autorun(() => (0, import_reactive_route.routerSetLoadedComponent)(props, config));
91
61
  return (
92
62
  // @ts-ignore
93
63
  (0, import_web.createComponent)(import_solid_js.Show, {
@@ -99,10 +69,7 @@ function Router(props) {
99
69
  get component() {
100
70
  return props.router.routes[config.loadedComponentName]?.component || void 0;
101
71
  }
102
- }, () => Object.keys(config.currentProps).reduce((acc, key) => {
103
- acc[key] = currentProps[key];
104
- return acc;
105
- }, {}), {
72
+ }, () => config.currentProps, {
106
73
  get router() {
107
74
  return props.router;
108
75
  }
package/solid/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  // packages/solid/Router.tsx
2
2
  import { createComponent as _$createComponent } from "solid-js/web";
3
3
  import { mergeProps as _$mergeProps } from "solid-js/web";
4
- import { history } from "reactive-route";
4
+ import { history, routerSetLoadedComponent } from "reactive-route";
5
5
  import { Show } from "solid-js";
6
6
  import { Dynamic } from "solid-js/web";
7
7
  function Router(props) {
@@ -10,7 +10,6 @@ function Router(props) {
10
10
  loadedComponentPage: void 0,
11
11
  currentProps: {}
12
12
  });
13
- let currentProps = {};
14
13
  function redirectOnHistoryPop() {
15
14
  if (!history) return;
16
15
  history.listen((params) => {
@@ -25,43 +24,14 @@ function Router(props) {
25
24
  });
26
25
  });
27
26
  }
28
- function setLoadedComponent() {
29
- const currentRouteName = props.router.currentRoute.name;
30
- const currentRoutePage = props.router.currentRoute.pageId;
31
- const componentConfig = props.router.routes[currentRouteName];
32
- let preventRedirect = false;
33
- if (props.router.isRedirecting) preventRedirect = true;
34
- else if (config.loadedComponentName === currentRouteName) {
35
- preventRedirect = true;
36
- } else if (config.loadedComponentPage != null && currentRouteName != null) {
37
- if (config.loadedComponentPage === currentRoutePage) {
38
- props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
39
- currentProps = "props" in componentConfig ? componentConfig.props : {};
40
- preventRedirect = true;
41
- }
42
- }
43
- if (preventRedirect) return;
44
- props.router.adapters.batch(() => {
45
- if (config.loadedComponentName) {
46
- props.beforeUpdatePageComponent?.();
47
- }
48
- props.beforeSetPageComponent?.(componentConfig);
49
- props.router.adapters.batch(() => {
50
- props.router.adapters.replaceObject(config.currentProps, "props" in componentConfig ? componentConfig.props : {});
51
- currentProps = "props" in componentConfig ? componentConfig.props : {};
52
- config.loadedComponentName = currentRouteName;
53
- config.loadedComponentPage = componentConfig.pageId;
54
- });
55
- });
56
- }
57
27
  props.beforeMount?.();
58
28
  redirectOnHistoryPop();
59
29
  if (props.router.adapters.immediateSetComponent) {
60
30
  props.router.adapters.batch(() => {
61
- setLoadedComponent();
31
+ routerSetLoadedComponent(props, config);
62
32
  });
63
33
  }
64
- props.router.adapters.autorun(() => setLoadedComponent());
34
+ props.router.adapters.autorun(() => routerSetLoadedComponent(props, config));
65
35
  return (
66
36
  // @ts-ignore
67
37
  _$createComponent(Show, {
@@ -73,10 +43,7 @@ function Router(props) {
73
43
  get component() {
74
44
  return props.router.routes[config.loadedComponentName]?.component || void 0;
75
45
  }
76
- }, () => Object.keys(config.currentProps).reduce((acc, key) => {
77
- acc[key] = currentProps[key];
78
- return acc;
79
- }, {}), {
46
+ }, () => config.currentProps, {
80
47
  get router() {
81
48
  return props.router;
82
49
  }
package/vue/index.cjs CHANGED
Binary file
package/vue/index.mjs CHANGED
Binary file