@legalplace/wizardx-core 4.42.10-nightly.20251126122442 → 4.42.10-nightly.20251126141528

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/App.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from "react";
3
- import { BrowserRouter, Route, Switch, Redirect } from "react-router-dom";
3
+ import { Router, Route, Switch, Redirect } from "react-router-dom";
4
4
  import { Provider } from "react-redux";
5
5
  import { getStore, createAppStore } from "./redux/store";
6
+ import { getHistory } from "./redux/routerHistory";
6
7
  import Globals, { setGlobals } from "./Globals";
7
8
  import { getConfig, updateConfig } from "./config";
8
9
  import { fetchModelPrerequisitesAction } from "./redux/actions/sagas/model";
@@ -33,7 +34,7 @@ class WizardXCore extends React.Component {
33
34
  var _a;
34
35
  super(props);
35
36
  clearPlugins();
36
- const historyType = "memory";
37
+ const historyType = typeof props.historyType === "string" ? props.historyType : "browser";
37
38
  const params = Object.assign(Object.assign({}, Globals), { loadTheme: props.loadTheme, loadPlugin: props.loadPlugin });
38
39
  if (props.model) {
39
40
  params.model = props.model;
@@ -76,7 +77,7 @@ class WizardXCore extends React.Component {
76
77
  getStore().dispatch(resetStateAction());
77
78
  }
78
79
  render() {
79
- return (_jsx(Provider, { store: getStore(), children: _jsxs(BrowserRouter, { children: [_jsx(RouteWatcher, {}), _jsxs(Switch, { children: [_jsx(Route, { path: "/p/:path", component: PluginRoute }), _jsx(Route, { path: getConfig().router.smartscriptPath, exact: true, strict: true, component: SmartScriptComponent }), _jsx(Route, { path: getConfig().router.wizardInstancePath, component: ViewComponent }), _jsx(Route, { path: getConfig().router.wizardPath, component: ViewComponent }), !window.location.href.includes("smartscript") && (_jsx(Route, { component: RedirectHandler }))] })] }) }));
80
+ return (_jsx(Provider, { store: getStore(), children: _jsxs(Router, { history: getHistory(), children: [_jsx(RouteWatcher, {}), _jsxs(Switch, { children: [_jsx(Route, { path: "/p/:path", component: PluginRoute }), _jsx(Route, { path: getConfig().router.smartscriptPath, exact: true, strict: true, component: SmartScriptComponent }), _jsx(Route, { path: getConfig().router.wizardInstancePath, component: ViewComponent }), _jsx(Route, { path: getConfig().router.wizardPath, component: ViewComponent }), !window.location.href.includes("smartscript") && (_jsx(Route, { component: RedirectHandler }))] })] }) }));
80
81
  }
81
82
  }
82
83
  export default WizardXCore;
@@ -1,23 +1,34 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useRef } from "react";
2
2
  import { useLocation } from "react-router-dom";
3
- import { useDispatch } from "react-redux";
3
+ import { useDispatch, useSelector } from "react-redux";
4
4
  const RouteWatcher = () => {
5
5
  const location = useLocation();
6
6
  const dispatch = useDispatch();
7
+ const isFirstRender = useRef(true);
8
+ const routerLocation = useSelector((state) => { var _a; return (_a = state.router) === null || _a === void 0 ? void 0 : _a.location; });
7
9
  useEffect(() => {
8
- dispatch({
9
- type: "@@router/LOCATION_CHANGE",
10
- payload: {
11
- location: {
12
- pathname: location.pathname,
13
- search: location.search,
14
- hash: location.hash,
10
+ const hasChanged = !routerLocation ||
11
+ routerLocation.pathname !== location.pathname ||
12
+ routerLocation.search !== location.search ||
13
+ routerLocation.hash !== location.hash;
14
+ if (hasChanged) {
15
+ dispatch({
16
+ type: "@@router/LOCATION_CHANGE",
17
+ payload: {
18
+ location: {
19
+ pathname: location.pathname,
20
+ search: location.search,
21
+ hash: location.hash,
22
+ },
23
+ action: isFirstRender.current ? "POP" : "PUSH",
24
+ isFirstRendering: isFirstRender.current,
15
25
  },
16
- action: "PUSH",
17
- isFirstRendering: false,
18
- },
19
- });
20
- }, [location.pathname, location.search, location.hash, dispatch]);
26
+ });
27
+ }
28
+ if (isFirstRender.current) {
29
+ isFirstRender.current = false;
30
+ }
31
+ }, [location.pathname, location.search, location.hash, dispatch, routerLocation]);
21
32
  return null;
22
33
  };
23
34
  export default RouteWatcher;
@@ -237,7 +237,7 @@ function* createInstance(enableShadowInstance, modelInformation, uniqid, permali
237
237
  yield put(initInstanceAction(instance));
238
238
  }
239
239
  function* fetchModelPrerequisites(action) {
240
- const { permalink, prefix } = action;
240
+ let { permalink, prefix } = action;
241
241
  if (!permalink && window.location.href.includes("smartscript"))
242
242
  return;
243
243
  const uniqid = selectInstanceUniqid() || getConfig().uniqid;
@@ -245,6 +245,12 @@ function* fetchModelPrerequisites(action) {
245
245
  const urlParams = new URLSearchParams(window.location.search);
246
246
  const state = yield select((s) => s);
247
247
  const pathReader = new PathReader(state);
248
+ if (!permalink || permalink.trim() === "") {
249
+ permalink = pathReader.currentPermalink || "";
250
+ }
251
+ if (!prefix || prefix.trim() === "") {
252
+ prefix = pathReader.currentPrefix || "";
253
+ }
248
254
  const queryParams = new URLSearchParams(window.location.search);
249
255
  if (pathReader.modelVersion)
250
256
  queryParams.set("version", pathReader.modelVersion);
@@ -51,6 +51,20 @@ export const createAppStore = (historyType = "browser") => {
51
51
  sagasRunner(sagaMiddleware);
52
52
  subscribeListeners(store);
53
53
  store.dispatch({ type: "@@WIZARDX/INIT" });
54
+ if (typeof window !== "undefined") {
55
+ store.dispatch({
56
+ type: "@@router/LOCATION_CHANGE",
57
+ payload: {
58
+ location: {
59
+ pathname: window.location.pathname,
60
+ search: window.location.search,
61
+ hash: window.location.hash,
62
+ },
63
+ action: "POP",
64
+ isFirstRendering: true,
65
+ },
66
+ });
67
+ }
54
68
  };
55
69
  export const getStore = (throwIfDoesNotExist = true) => {
56
70
  if (store === undefined && throwIfDoesNotExist)
@@ -14,8 +14,18 @@ export type MAPPED_CONDITIONS = {
14
14
  };
15
15
  conditions: ConditionV3;
16
16
  };
17
+ export interface RouterStateType {
18
+ location: {
19
+ pathname: string;
20
+ search: string;
21
+ hash: string;
22
+ key?: string;
23
+ state?: any;
24
+ };
25
+ action: string;
26
+ }
17
27
  export interface StateType {
18
- router: any;
28
+ router: RouterStateType;
19
29
  app: AppType;
20
30
  user?: UserType;
21
31
  inputs: InputsType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legalplace/wizardx-core",
3
- "version": "4.42.10-nightly.20251126122442",
3
+ "version": "4.42.10-nightly.20251126141528",
4
4
  "author": "Moncef Hammou (moncef@legalplace.fr)",
5
5
  "license": "MIT",
6
6
  "files": [