@elliemae/pui-app-sdk 4.10.0-beta.2 → 4.10.0-beta.4

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 (63) hide show
  1. package/dist/cjs/data/{dynamicMiddleware.js → appMiddleware.js} +5 -5
  2. package/dist/cjs/data/errorMiddleware.js +31 -0
  3. package/dist/cjs/data/index.js +3 -3
  4. package/dist/cjs/data/listenerMiddleware.js +58 -0
  5. package/dist/cjs/data/queryMiddleware.js +51 -0
  6. package/dist/cjs/data/react.js +32 -0
  7. package/dist/cjs/data/store.js +3 -3
  8. package/dist/cjs/data/useAppDispatch.js +25 -0
  9. package/dist/cjs/data/useAppMiddleware.js +34 -0
  10. package/dist/cjs/data/{react-redux.js → useAppSelector.js} +3 -5
  11. package/dist/cjs/data/useInjectListener.js +34 -0
  12. package/dist/cjs/data/{redux-injectors.js → useInjectQuery.js} +18 -13
  13. package/dist/cjs/index.js +11 -6
  14. package/dist/cjs/view/breakpoint/use-breakpoint.js +2 -2
  15. package/dist/cjs/view/error-toast/index.js +3 -3
  16. package/dist/cjs/view/live-message/index.js +4 -4
  17. package/dist/cjs/view/login/index.js +2 -2
  18. package/dist/cjs/view/modals/navigation-prompt/index.js +2 -2
  19. package/dist/cjs/view/modals/session-expiry/index.js +2 -2
  20. package/dist/cjs/view/modals/wait-message/index.js +3 -3
  21. package/dist/cjs/view/modals/wait-message/wait-message-launcher.js +2 -2
  22. package/dist/cjs/view/session-timeout/index.js +2 -2
  23. package/dist/esm/data/{dynamicMiddleware.js → appMiddleware.js} +2 -2
  24. package/dist/esm/data/errorMiddleware.js +11 -0
  25. package/dist/esm/data/index.js +1 -1
  26. package/dist/esm/data/listenerMiddleware.js +38 -0
  27. package/dist/esm/data/queryMiddleware.js +31 -0
  28. package/dist/esm/data/react.js +12 -0
  29. package/dist/esm/data/store.js +4 -4
  30. package/dist/esm/data/useAppDispatch.js +5 -0
  31. package/dist/esm/data/useAppMiddleware.js +14 -0
  32. package/dist/esm/data/useAppSelector.js +5 -0
  33. package/dist/esm/data/useInjectListener.js +17 -0
  34. package/dist/esm/data/useInjectQuery.js +25 -0
  35. package/dist/esm/index.js +13 -2
  36. package/dist/esm/view/breakpoint/use-breakpoint.js +1 -1
  37. package/dist/esm/view/error-toast/index.js +1 -1
  38. package/dist/esm/view/live-message/index.js +1 -1
  39. package/dist/esm/view/login/index.js +1 -1
  40. package/dist/esm/view/modals/navigation-prompt/index.js +1 -1
  41. package/dist/esm/view/modals/session-expiry/index.js +1 -1
  42. package/dist/esm/view/modals/wait-message/index.js +1 -1
  43. package/dist/esm/view/modals/wait-message/wait-message-launcher.js +1 -1
  44. package/dist/esm/view/session-timeout/index.js +1 -1
  45. package/dist/types/lib/data/{dynamicMiddleware.d.ts → appMiddleware.d.ts} +1 -1
  46. package/dist/types/lib/data/errorMiddleware.d.ts +2 -0
  47. package/dist/types/lib/data/index.d.ts +1 -1
  48. package/dist/types/lib/data/listenerMiddleware.d.ts +11 -0
  49. package/dist/types/lib/data/queryMiddleware.d.ts +11 -0
  50. package/dist/types/lib/data/react.d.ts +5 -0
  51. package/dist/types/lib/data/store.d.ts +3 -2
  52. package/dist/types/lib/data/{react-redux.d.ts → useAppDispatch.d.ts} +0 -3
  53. package/dist/types/lib/data/useAppMiddleware.d.ts +5 -0
  54. package/dist/types/lib/data/useAppSelector.d.ts +3 -0
  55. package/dist/types/lib/data/useInjectListener.d.ts +5 -0
  56. package/dist/types/lib/data/useInjectQuery.d.ts +6 -0
  57. package/dist/types/lib/index.d.ts +3 -2
  58. package/dist/types/lib/utils/testing/render-with-redux.d.ts +1 -1
  59. package/dist/types/lib/utils/testing/render-with-router-redux.d.ts +1 -1
  60. package/package.json +4 -4
  61. package/dist/esm/data/react-redux.js +0 -7
  62. package/dist/esm/data/redux-injectors.js +0 -17
  63. package/dist/types/lib/data/redux-injectors.d.ts +0 -7
@@ -16,18 +16,18 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var dynamicMiddleware_exports = {};
20
- __export(dynamicMiddleware_exports, {
19
+ var appMiddleware_exports = {};
20
+ __export(appMiddleware_exports, {
21
21
  addMiddleware: () => addMiddleware,
22
- dynamicMiddleware: () => dynamicMiddleware,
22
+ appMiddleware: () => appMiddleware,
23
23
  removeMiddleware: () => removeMiddleware,
24
24
  resetMiddlewares: () => resetMiddlewares
25
25
  });
26
- module.exports = __toCommonJS(dynamicMiddleware_exports);
26
+ module.exports = __toCommonJS(appMiddleware_exports);
27
27
  var import_redux = require("redux");
28
28
  const middlewareDispatchFns = /* @__PURE__ */ new Map();
29
29
  let store;
30
- const dynamicMiddleware = (_store) => {
30
+ const appMiddleware = (_store) => {
31
31
  store = _store;
32
32
  const dispatchFns = Array.from(middlewareDispatchFns.values());
33
33
  return (next) => (action) => (
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var errorMiddleware_exports = {};
20
+ __export(errorMiddleware_exports, {
21
+ errorMiddleware: () => errorMiddleware
22
+ });
23
+ module.exports = __toCommonJS(errorMiddleware_exports);
24
+ var import_toolkit = require("@reduxjs/toolkit");
25
+ var import_error = require("./error/index.js");
26
+ const errorMiddleware = (api) => (next) => (action) => {
27
+ if ((0, import_toolkit.isRejectedWithValue)(action)) {
28
+ api.dispatch(import_error.actions.set({ messageText: action?.error?.data?.message }));
29
+ }
30
+ return next(action);
31
+ };
@@ -21,12 +21,12 @@ __export(data_exports, {
21
21
  configureStore: () => import_store.createAppStore,
22
22
  createManager: () => import_redux_injectors.createManager,
23
23
  getStore: () => import_store.getStore,
24
- useAppDispatch: () => import_react_redux.useAppDispatch,
25
- useAppSelector: () => import_react_redux.useAppSelector,
24
+ useAppDispatch: () => import_react.useAppDispatch,
25
+ useAppSelector: () => import_react.useAppSelector,
26
26
  useInjectReducer: () => import_redux_injectors.useInjectReducer,
27
27
  useInjectSaga: () => import_redux_injectors.useInjectSaga
28
28
  });
29
29
  module.exports = __toCommonJS(data_exports);
30
30
  var import_redux_injectors = require("redux-injectors");
31
- var import_react_redux = require("./react-redux.js");
31
+ var import_react = require("./react.js");
32
32
  var import_store = require("./store.js");
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var listenerMiddleware_exports = {};
20
+ __export(listenerMiddleware_exports, {
21
+ addListener: () => addListener,
22
+ listenerMiddleware: () => listenerMiddleware,
23
+ removeListener: () => removeListener,
24
+ resetListeners: () => resetListeners
25
+ });
26
+ module.exports = __toCommonJS(listenerMiddleware_exports);
27
+ var import_toolkit = require("@reduxjs/toolkit");
28
+ let listenerAPI;
29
+ const rtkListenerMiddleware = (0, import_toolkit.createListenerMiddleware)();
30
+ const listenerDispatchFns = /* @__PURE__ */ new Map();
31
+ const listenerMiddleware = (_listenerAPI) => {
32
+ listenerAPI = _listenerAPI;
33
+ return rtkListenerMiddleware.middleware(listenerAPI);
34
+ };
35
+ const addListener = ({
36
+ key,
37
+ listener
38
+ }) => {
39
+ if (listenerDispatchFns.has(key) && listenerAPI) {
40
+ listenerDispatchFns.set(key, listener);
41
+ return rtkListenerMiddleware.startListening(listener);
42
+ }
43
+ return null;
44
+ };
45
+ const removeListener = (key) => {
46
+ const listener = listenerDispatchFns.get(key);
47
+ if (listener) {
48
+ listenerDispatchFns.delete(key);
49
+ return rtkListenerMiddleware.stopListening(listener);
50
+ }
51
+ return true;
52
+ };
53
+ const resetListeners = () => {
54
+ listenerDispatchFns.forEach((listener) => {
55
+ rtkListenerMiddleware.stopListening(listener);
56
+ });
57
+ listenerDispatchFns.clear();
58
+ };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var queryMiddleware_exports = {};
20
+ __export(queryMiddleware_exports, {
21
+ addMiddleware: () => addMiddleware,
22
+ queryMiddleware: () => queryMiddleware,
23
+ removeMiddleware: () => removeMiddleware,
24
+ resetMiddlewares: () => resetMiddlewares
25
+ });
26
+ module.exports = __toCommonJS(queryMiddleware_exports);
27
+ var import_redux = require("redux");
28
+ const middlewareDispatchFns = /* @__PURE__ */ new Map();
29
+ let store;
30
+ const queryMiddleware = (_store) => {
31
+ store = _store;
32
+ const dispatchFns = Array.from(middlewareDispatchFns.values());
33
+ return (next) => (action) => (
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
35
+ (0, import_redux.compose)(...dispatchFns)(next)(action)
36
+ );
37
+ };
38
+ const addMiddleware = ({
39
+ reducerPath,
40
+ middleware
41
+ }) => {
42
+ if (middlewareDispatchFns.has(reducerPath) || !store)
43
+ return;
44
+ middlewareDispatchFns.set(reducerPath, middleware(store));
45
+ };
46
+ const removeMiddleware = (reducerPath) => {
47
+ middlewareDispatchFns.delete(reducerPath);
48
+ };
49
+ const resetMiddlewares = () => {
50
+ middlewareDispatchFns.clear();
51
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var react_exports = {};
20
+ __export(react_exports, {
21
+ useAppDispatch: () => import_useAppDispatch.useAppDispatch,
22
+ useAppMiddleware: () => import_useAppMiddleware.useAppMiddleware,
23
+ useAppSelector: () => import_useAppSelector.useAppSelector,
24
+ useInjectListener: () => import_useInjectListener.useInjectListener,
25
+ useInjectQuery: () => import_useInjectQuery.useInjectQuery
26
+ });
27
+ module.exports = __toCommonJS(react_exports);
28
+ var import_useInjectQuery = require("./useInjectQuery.js");
29
+ var import_useInjectListener = require("./useInjectListener.js");
30
+ var import_useAppDispatch = require("./useAppDispatch.js");
31
+ var import_useAppSelector = require("./useAppSelector.js");
32
+ var import_useAppMiddleware = require("./useAppMiddleware.js");
@@ -39,9 +39,9 @@ var import_redux_injectors = require("redux-injectors");
39
39
  var import_redux_saga = __toESM(require("redux-saga"));
40
40
  var import_reducers = require("./reducers.js");
41
41
  var import_webpack_hmr = require("./webpack-hmr.js");
42
- var import_dynamicMiddleware = require("./dynamicMiddleware.js");
42
+ var import_queryMiddleware = require("./queryMiddleware.js");
43
+ var import_listenerMiddleware = require("./listenerMiddleware.js");
43
44
  const rootReducer = (0, import_reducers.createReducer)();
44
- const listenerMiddleware = (0, import_toolkit.createListenerMiddleware)();
45
45
  let appStore = null;
46
46
  const setStore = (store) => {
47
47
  appStore = store;
@@ -57,7 +57,7 @@ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {
57
57
  ];
58
58
  const baseStore = (0, import_toolkit.configureStore)({
59
59
  reducer: rootReducer,
60
- middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(listenerMiddleware.middleware).concat([sagaMiddleware, import_dynamicMiddleware.dynamicMiddleware]),
60
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(import_listenerMiddleware.listenerMiddleware).concat([sagaMiddleware, import_queryMiddleware.queryMiddleware]),
61
61
  devTools: true,
62
62
  preloadedState: initialState,
63
63
  enhancers
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useAppDispatch_exports = {};
20
+ __export(useAppDispatch_exports, {
21
+ useAppDispatch: () => useAppDispatch
22
+ });
23
+ module.exports = __toCommonJS(useAppDispatch_exports);
24
+ var import_react_redux = require("react-redux");
25
+ const useAppDispatch = () => (0, import_react_redux.useDispatch)();
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useAppMiddleware_exports = {};
20
+ __export(useAppMiddleware_exports, {
21
+ useAppMiddleware: () => useAppMiddleware
22
+ });
23
+ module.exports = __toCommonJS(useAppMiddleware_exports);
24
+ var import_react = require("react");
25
+ var import_appMiddleware = require("./appMiddleware.js");
26
+ const useAppMiddleware = ({
27
+ key,
28
+ middleware
29
+ }) => (0, import_react.useEffect)(() => {
30
+ (0, import_appMiddleware.addMiddleware)({ key, middleware });
31
+ return () => {
32
+ (0, import_appMiddleware.removeMiddleware)(key);
33
+ };
34
+ }, [key, middleware]);
@@ -16,12 +16,10 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var react_redux_exports = {};
20
- __export(react_redux_exports, {
21
- useAppDispatch: () => useAppDispatch,
19
+ var useAppSelector_exports = {};
20
+ __export(useAppSelector_exports, {
22
21
  useAppSelector: () => useAppSelector
23
22
  });
24
- module.exports = __toCommonJS(react_redux_exports);
23
+ module.exports = __toCommonJS(useAppSelector_exports);
25
24
  var import_react_redux = require("react-redux");
26
- const useAppDispatch = () => (0, import_react_redux.useDispatch)();
27
25
  const useAppSelector = import_react_redux.useSelector;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useInjectListener_exports = {};
20
+ __export(useInjectListener_exports, {
21
+ useInjectListener: () => useInjectListener
22
+ });
23
+ module.exports = __toCommonJS(useInjectListener_exports);
24
+ var import_react = require("react");
25
+ var import_listenerMiddleware = require("./listenerMiddleware.js");
26
+ const useInjectListener = ({
27
+ key,
28
+ listener
29
+ }) => (0, import_react.useEffect)(() => {
30
+ (0, import_listenerMiddleware.addListener)({ key, listener });
31
+ return () => {
32
+ (0, import_listenerMiddleware.removeListener)(key);
33
+ };
34
+ }, [key, listener]);
@@ -16,22 +16,27 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var redux_injectors_exports = {};
20
- __export(redux_injectors_exports, {
21
- createManager: () => import_redux_injectors2.createManager,
22
- useInjectReducer: () => useInjectReducer,
23
- useInjectSaga: () => import_redux_injectors2.useInjectSaga
19
+ var useInjectQuery_exports = {};
20
+ __export(useInjectQuery_exports, {
21
+ useInjectQuery: () => useInjectQuery
24
22
  });
25
- module.exports = __toCommonJS(redux_injectors_exports);
23
+ module.exports = __toCommonJS(useInjectQuery_exports);
24
+ var import_react = require("react");
26
25
  var import_redux_injectors = require("redux-injectors");
27
- var import_dynamicMiddleware = require("./dynamicMiddleware.js");
28
- var import_redux_injectors2 = require("redux-injectors");
29
- const useInjectReducer = ({
30
- key,
26
+ var import_queryMiddleware = require("./queryMiddleware.js");
27
+ const useInjectQuery = ({
28
+ reducerPath,
31
29
  reducer,
32
30
  middleware
33
31
  }) => {
34
- (0, import_redux_injectors.useInjectReducer)({ key, reducer });
35
- if (middleware)
36
- (0, import_dynamicMiddleware.addMiddleware)({ key, middleware });
32
+ (0, import_redux_injectors.useInjectReducer)({ key: reducerPath, reducer });
33
+ return (0, import_react.useEffect)(() => {
34
+ if (!middleware)
35
+ return () => {
36
+ };
37
+ (0, import_queryMiddleware.addMiddleware)({ reducerPath, middleware });
38
+ return () => {
39
+ (0, import_queryMiddleware.removeMiddleware)(reducerPath);
40
+ };
41
+ }, [reducerPath, reducer, middleware]);
37
42
  };
package/dist/cjs/index.js CHANGED
@@ -69,8 +69,9 @@ __export(lib_exports, {
69
69
  authorize: () => import_auth.authorize,
70
70
  configureStore: () => import_store.createAppStore,
71
71
  createManager: () => import_redux_injectors.createManager,
72
- enableReactAppForHostIntegration: () => import_react.enableReactAppForHostIntegration,
72
+ enableReactAppForHostIntegration: () => import_react2.enableReactAppForHostIntegration,
73
73
  error: () => import_error.actions,
74
+ errorMiddleware: () => import_errorMiddleware.errorMiddleware,
74
75
  fetchHostAppData: () => import_fetch_host_app_data.fetchHostAppData,
75
76
  fetchUserSettings: () => import_users.getUser,
76
77
  getApiActionCreator: () => import_helpers2.getApiActionCreator,
@@ -120,8 +121,11 @@ __export(lib_exports, {
120
121
  subscribeToSessionExpiryWarning: () => import_session.subscribeToSessionExpiryWarning,
121
122
  trackActivity: () => import_session.trackActivity,
122
123
  updateBAEventParameters: () => import_web_analytics.updateBAEventParameters,
123
- useAppDispatch: () => import_react_redux.useAppDispatch,
124
- useAppSelector: () => import_react_redux.useAppSelector,
124
+ useAppDispatch: () => import_react.useAppDispatch,
125
+ useAppMiddleware: () => import_react.useAppMiddleware,
126
+ useAppSelector: () => import_react.useAppSelector,
127
+ useInjectListener: () => import_react.useInjectListener,
128
+ useInjectQuery: () => import_react.useInjectQuery,
125
129
  useInjectReducer: () => import_redux_injectors.useInjectReducer,
126
130
  useInjectSaga: () => import_redux_injectors.useInjectSaga,
127
131
  useMediaQueryList: () => import_use_media_query_list.useMediaQueryList,
@@ -137,8 +141,9 @@ var import_actions = require("./data/auth/actions.js");
137
141
  var import_require_auth = require("./view/require-auth.js");
138
142
  var import_page = require("./view/page.js");
139
143
  var import_constants = __toESM(require("./utils/constants.js"));
140
- var import_react_redux = require("./data/react-redux.js");
141
- var import_redux_injectors = require("./data/redux-injectors.js");
144
+ var import_redux_injectors = require("redux-injectors");
145
+ var import_react = require("./data/react.js");
146
+ var import_errorMiddleware = require("./data/errorMiddleware.js");
142
147
  var import_helper = require("./utils/auth/helper.js");
143
148
  var import_url = require("./utils/url.js");
144
149
  var import_store = require("./data/store.js");
@@ -153,7 +158,7 @@ var import_actions3 = require("./data/wait-message/actions.js");
153
158
  var import_service_worker = require("./utils/service-worker.js");
154
159
  var import_guest = require("./utils/micro-frontend/guest.js");
155
160
  var import_host = require("./utils/micro-frontend/host.js");
156
- var import_react = require("./utils/app-host-integration/react.js");
161
+ var import_react2 = require("./utils/app-host-integration/react.js");
157
162
  var import_config = require("./utils/app-config/config.js");
158
163
  var import_micro_frontend = require("./utils/micro-frontend/index.js");
159
164
  var import_app_config = require("./utils/app-config/index.js");
@@ -24,7 +24,7 @@ module.exports = __toCommonJS(use_breakpoint_exports);
24
24
  var import_react = require("react");
25
25
  var import_styled_components = require("styled-components");
26
26
  var import_pubsub_js = require("pubsub-js");
27
- var import_react_redux = require("../../data/react-redux.js");
27
+ var import_react2 = require("../../data/react.js");
28
28
  var import_breakpoint = require("../../data/breakpoint/index.js");
29
29
  var import_use_media_query_list = require("./use-media-query-list.js");
30
30
  var import_constants = require("../../utils/constants.js");
@@ -39,7 +39,7 @@ const useBreakpoint = () => {
39
39
  ["small", "medium", "large"],
40
40
  "large"
41
41
  );
42
- const dispatch = (0, import_react_redux.useAppDispatch)();
42
+ const dispatch = (0, import_react2.useAppDispatch)();
43
43
  (0, import_react.useEffect)(() => {
44
44
  dispatch({ type: import_breakpoint.breakpoint.change, payload: currentBreakpoint });
45
45
  (0, import_pubsub_js.publish)(import_constants.HOST_WINDOW_BREAKPOINT_CHANGED, currentBreakpoint);
@@ -24,11 +24,11 @@ module.exports = __toCommonJS(error_toast_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_react = require("react");
26
26
  var import_ds_toast = require("@elliemae/ds-toast");
27
- var import_react_redux = require("../../data/react-redux.js");
27
+ var import_react2 = require("../../data/react.js");
28
28
  var import_error = require("../../data/error/index.js");
29
29
  const ErrorToast = (0, import_react.memo)((props) => {
30
- const storeError = (0, import_react_redux.useAppSelector)((state) => state?.error);
31
- const dispatch = (0, import_react_redux.useAppDispatch)();
30
+ const storeError = (0, import_react2.useAppSelector)((state) => state?.error);
31
+ const dispatch = (0, import_react2.useAppDispatch)();
32
32
  (0, import_react.useEffect)(() => {
33
33
  if (storeError && (storeError?.description || storeError?.messageText)) {
34
34
  const toastProps = {
@@ -23,10 +23,10 @@ __export(live_message_exports, {
23
23
  module.exports = __toCommonJS(live_message_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_react_aria_live = require("react-aria-live");
26
- var import_react_redux = require("../../data/react-redux.js");
26
+ var import_react = require("../../data/react.js");
27
27
  const LiveMessage = () => {
28
- const message = (0, import_react_redux.useAppSelector)((state) => state.liveMessage?.message);
29
- const id = (0, import_react_redux.useAppSelector)((state) => state.liveMessage?.id);
30
- const ariaLive = (0, import_react_redux.useAppSelector)((state) => state.liveMessage?.ariaLive);
28
+ const message = (0, import_react.useAppSelector)((state) => state.liveMessage?.message);
29
+ const id = (0, import_react.useAppSelector)((state) => state.liveMessage?.id);
30
+ const ariaLive = (0, import_react.useAppSelector)((state) => state.liveMessage?.ariaLive);
31
31
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_aria_live.LiveMessage, { message, "aria-live": ariaLive, id });
32
32
  };
@@ -23,7 +23,7 @@ __export(login_exports, {
23
23
  module.exports = __toCommonJS(login_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_react = require("react");
26
- var import_react_redux = require("../../data/react-redux.js");
26
+ var import_react2 = require("../../data/react.js");
27
27
  var import_auth = require("../../utils/auth/index.js");
28
28
  var import_actions = require("../../data/auth/actions.js");
29
29
  const Login = ({
@@ -33,7 +33,7 @@ const Login = ({
33
33
  children
34
34
  }) => {
35
35
  const [userAuthorized, setUserAuthorized] = (0, import_react.useState)(false);
36
- const dispatch = (0, import_react_redux.useAppDispatch)();
36
+ const dispatch = (0, import_react2.useAppDispatch)();
37
37
  (0, import_react.useEffect)(() => {
38
38
  (0, import_auth.login)({ clientId, scope, responseType }).then(({ authorized }) => {
39
39
  if (authorized)
@@ -26,11 +26,11 @@ var import_react = require("react");
26
26
  var import_ds_icons = require("@elliemae/ds-icons");
27
27
  var import_ds_button = require("@elliemae/ds-button");
28
28
  var import_ds_dialog = require("@elliemae/ds-dialog");
29
- var import_react_redux = require("../../../data/react-redux.js");
29
+ var import_react2 = require("../../../data/react.js");
30
30
  var import_actions = require("../../../data/navigation-prompt/actions.js");
31
31
  const NavigationPrompt = (0, import_react.memo)(
32
32
  ({ open = false }) => {
33
- const dispatch = (0, import_react_redux.useAppDispatch)();
33
+ const dispatch = (0, import_react2.useAppDispatch)();
34
34
  const cancelDialog = () => dispatch(import_actions.navigationPrompt.cancel());
35
35
  const confirmDialog = () => dispatch(import_actions.navigationPrompt.confirm());
36
36
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_dialog.DSDialog, { isOpen: open, onClickOutside: cancelDialog, centered: true, children: [
@@ -26,7 +26,7 @@ var import_react = require("react");
26
26
  var import_ds_button = require("@elliemae/ds-button");
27
27
  var import_ds_icons = require("@elliemae/ds-icons");
28
28
  var import_ds_dialog = require("@elliemae/ds-dialog");
29
- var import_react_redux = require("../../../data/react-redux.js");
29
+ var import_react2 = require("../../../data/react.js");
30
30
  var import_actions = require("../../../data/logout/actions.js");
31
31
  var import_session = require("../../../utils/session.js");
32
32
  var import_customHooks = require("./customHooks.js");
@@ -34,7 +34,7 @@ const SessionExpiry = (0, import_react.memo)(
34
34
  ({ open, warningNotifiedAt = 0 }) => {
35
35
  const [isOpen, setIsOpen] = (0, import_react.useState)(open);
36
36
  const timeLeft = (0, import_customHooks.useTrackSessionExpiry)(warningNotifiedAt);
37
- const dispatch = (0, import_react_redux.useAppDispatch)();
37
+ const dispatch = (0, import_react2.useAppDispatch)();
38
38
  (0, import_react.useEffect)(() => {
39
39
  setIsOpen(open);
40
40
  }, [open]);
@@ -24,7 +24,7 @@ module.exports = __toCommonJS(wait_message_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_react = require("react");
26
26
  var import_ds_loading_indicator = require("@elliemae/ds-loading-indicator");
27
- var import_react_redux = require("../../../data/react-redux.js");
27
+ var import_react2 = require("../../../data/react.js");
28
28
  var import_use_html_wait_message = require("./use-html-wait-message.js");
29
29
  var import_user_wait_event = require("../../../analytics/user-wait-event.js");
30
30
  const WaitMessage = (0, import_react.memo)(
@@ -33,8 +33,8 @@ const WaitMessage = (0, import_react.memo)(
33
33
  style = { color: "white", fontSize: "1.25rem" },
34
34
  ...rest
35
35
  }) => {
36
- const isOpen = (0, import_react_redux.useAppSelector)((state) => state.waitMessage?.isOpen);
37
- const message = (0, import_react_redux.useAppSelector)((state) => state.waitMessage?.message);
36
+ const isOpen = (0, import_react2.useAppSelector)((state) => state.waitMessage?.isOpen);
37
+ const message = (0, import_react2.useAppSelector)((state) => state.waitMessage?.message);
38
38
  (0, import_react.useEffect)(() => {
39
39
  if (isOpen)
40
40
  (0, import_user_wait_event.waitStartEvent)();
@@ -22,10 +22,10 @@ __export(wait_message_launcher_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(wait_message_launcher_exports);
24
24
  var import_react = require("react");
25
- var import_react_redux = require("../../../data/react-redux.js");
25
+ var import_react2 = require("../../../data/react.js");
26
26
  var import_actions = require("../../../data/wait-message/actions.js");
27
27
  const WaitMessageLauncher = () => {
28
- const dispatch = (0, import_react_redux.useAppDispatch)();
28
+ const dispatch = (0, import_react2.useAppDispatch)();
29
29
  (0, import_react.useEffect)(() => {
30
30
  dispatch(import_actions.waitMessage.open());
31
31
  return () => {
@@ -23,12 +23,12 @@ __export(session_timeout_exports, {
23
23
  module.exports = __toCommonJS(session_timeout_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_react = require("react");
26
- var import_react_redux = require("../../data/react-redux.js");
26
+ var import_react2 = require("../../data/react.js");
27
27
  var import_actions = require("../../data/logout/actions.js");
28
28
  var import_session = require("../../utils/session.js");
29
29
  var import_session_expiry = require("../modals/session-expiry/index.js");
30
30
  const SessionTimeout = () => {
31
- const dispatch = (0, import_react_redux.useAppDispatch)();
31
+ const dispatch = (0, import_react2.useAppDispatch)();
32
32
  const [showSessionExpiryWarning, setSessionExpiryWarning] = (0, import_react.useState)(false);
33
33
  const [warningNotifiedAt, setwarningNotifiedAt] = (0, import_react.useState)();
34
34
  (0, import_react.useEffect)(() => {
@@ -1,7 +1,7 @@
1
1
  import { compose } from "redux";
2
2
  const middlewareDispatchFns = /* @__PURE__ */ new Map();
3
3
  let store;
4
- const dynamicMiddleware = (_store) => {
4
+ const appMiddleware = (_store) => {
5
5
  store = _store;
6
6
  const dispatchFns = Array.from(middlewareDispatchFns.values());
7
7
  return (next) => (action) => (
@@ -25,7 +25,7 @@ const resetMiddlewares = () => {
25
25
  };
26
26
  export {
27
27
  addMiddleware,
28
- dynamicMiddleware,
28
+ appMiddleware,
29
29
  removeMiddleware,
30
30
  resetMiddlewares
31
31
  };
@@ -0,0 +1,11 @@
1
+ import { isRejectedWithValue } from "@reduxjs/toolkit";
2
+ import { actions as error } from "./error/index.js";
3
+ const errorMiddleware = (api) => (next) => (action) => {
4
+ if (isRejectedWithValue(action)) {
5
+ api.dispatch(error.set({ messageText: action?.error?.data?.message }));
6
+ }
7
+ return next(action);
8
+ };
9
+ export {
10
+ errorMiddleware
11
+ };
@@ -3,7 +3,7 @@ import {
3
3
  useInjectSaga,
4
4
  createManager
5
5
  } from "redux-injectors";
6
- import { useAppDispatch, useAppSelector } from "./react-redux.js";
6
+ import { useAppDispatch, useAppSelector } from "./react.js";
7
7
  import { createAppStore, getStore } from "./store.js";
8
8
  export {
9
9
  createAppStore as configureStore,
@@ -0,0 +1,38 @@
1
+ import { createListenerMiddleware } from "@reduxjs/toolkit";
2
+ let listenerAPI;
3
+ const rtkListenerMiddleware = createListenerMiddleware();
4
+ const listenerDispatchFns = /* @__PURE__ */ new Map();
5
+ const listenerMiddleware = (_listenerAPI) => {
6
+ listenerAPI = _listenerAPI;
7
+ return rtkListenerMiddleware.middleware(listenerAPI);
8
+ };
9
+ const addListener = ({
10
+ key,
11
+ listener
12
+ }) => {
13
+ if (listenerDispatchFns.has(key) && listenerAPI) {
14
+ listenerDispatchFns.set(key, listener);
15
+ return rtkListenerMiddleware.startListening(listener);
16
+ }
17
+ return null;
18
+ };
19
+ const removeListener = (key) => {
20
+ const listener = listenerDispatchFns.get(key);
21
+ if (listener) {
22
+ listenerDispatchFns.delete(key);
23
+ return rtkListenerMiddleware.stopListening(listener);
24
+ }
25
+ return true;
26
+ };
27
+ const resetListeners = () => {
28
+ listenerDispatchFns.forEach((listener) => {
29
+ rtkListenerMiddleware.stopListening(listener);
30
+ });
31
+ listenerDispatchFns.clear();
32
+ };
33
+ export {
34
+ addListener,
35
+ listenerMiddleware,
36
+ removeListener,
37
+ resetListeners
38
+ };
@@ -0,0 +1,31 @@
1
+ import { compose } from "redux";
2
+ const middlewareDispatchFns = /* @__PURE__ */ new Map();
3
+ let store;
4
+ const queryMiddleware = (_store) => {
5
+ store = _store;
6
+ const dispatchFns = Array.from(middlewareDispatchFns.values());
7
+ return (next) => (action) => (
8
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
9
+ compose(...dispatchFns)(next)(action)
10
+ );
11
+ };
12
+ const addMiddleware = ({
13
+ reducerPath,
14
+ middleware
15
+ }) => {
16
+ if (middlewareDispatchFns.has(reducerPath) || !store)
17
+ return;
18
+ middlewareDispatchFns.set(reducerPath, middleware(store));
19
+ };
20
+ const removeMiddleware = (reducerPath) => {
21
+ middlewareDispatchFns.delete(reducerPath);
22
+ };
23
+ const resetMiddlewares = () => {
24
+ middlewareDispatchFns.clear();
25
+ };
26
+ export {
27
+ addMiddleware,
28
+ queryMiddleware,
29
+ removeMiddleware,
30
+ resetMiddlewares
31
+ };
@@ -0,0 +1,12 @@
1
+ import { useInjectQuery } from "./useInjectQuery.js";
2
+ import { useInjectListener } from "./useInjectListener.js";
3
+ import { useAppDispatch } from "./useAppDispatch.js";
4
+ import { useAppSelector } from "./useAppSelector.js";
5
+ import { useAppMiddleware } from "./useAppMiddleware.js";
6
+ export {
7
+ useAppDispatch,
8
+ useAppMiddleware,
9
+ useAppSelector,
10
+ useInjectListener,
11
+ useInjectQuery
12
+ };
@@ -1,12 +1,12 @@
1
- import { configureStore, createListenerMiddleware } from "@reduxjs/toolkit";
1
+ import { configureStore } from "@reduxjs/toolkit";
2
2
  import { setupListeners } from "@reduxjs/toolkit/query/react";
3
3
  import { createInjectorsEnhancer } from "redux-injectors";
4
4
  import createSagaMiddleware from "redux-saga";
5
5
  import { createReducer } from "./reducers.js";
6
6
  import { enableHotReloading } from "./webpack-hmr.js";
7
- import { dynamicMiddleware } from "./dynamicMiddleware.js";
7
+ import { queryMiddleware } from "./queryMiddleware.js";
8
+ import { listenerMiddleware } from "./listenerMiddleware.js";
8
9
  const rootReducer = createReducer();
9
- const listenerMiddleware = createListenerMiddleware();
10
10
  let appStore = null;
11
11
  const setStore = (store) => {
12
12
  appStore = store;
@@ -22,7 +22,7 @@ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {
22
22
  ];
23
23
  const baseStore = configureStore({
24
24
  reducer: rootReducer,
25
- middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(listenerMiddleware.middleware).concat([sagaMiddleware, dynamicMiddleware]),
25
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(listenerMiddleware).concat([sagaMiddleware, queryMiddleware]),
26
26
  devTools: true,
27
27
  preloadedState: initialState,
28
28
  enhancers
@@ -0,0 +1,5 @@
1
+ import { useDispatch } from "react-redux";
2
+ const useAppDispatch = () => useDispatch();
3
+ export {
4
+ useAppDispatch
5
+ };
@@ -0,0 +1,14 @@
1
+ import { useEffect } from "react";
2
+ import { addMiddleware, removeMiddleware } from "./appMiddleware.js";
3
+ const useAppMiddleware = ({
4
+ key,
5
+ middleware
6
+ }) => useEffect(() => {
7
+ addMiddleware({ key, middleware });
8
+ return () => {
9
+ removeMiddleware(key);
10
+ };
11
+ }, [key, middleware]);
12
+ export {
13
+ useAppMiddleware
14
+ };
@@ -0,0 +1,5 @@
1
+ import { useSelector } from "react-redux";
2
+ const useAppSelector = useSelector;
3
+ export {
4
+ useAppSelector
5
+ };
@@ -0,0 +1,17 @@
1
+ import { useEffect } from "react";
2
+ import {
3
+ addListener,
4
+ removeListener
5
+ } from "./listenerMiddleware.js";
6
+ const useInjectListener = ({
7
+ key,
8
+ listener
9
+ }) => useEffect(() => {
10
+ addListener({ key, listener });
11
+ return () => {
12
+ removeListener(key);
13
+ };
14
+ }, [key, listener]);
15
+ export {
16
+ useInjectListener
17
+ };
@@ -0,0 +1,25 @@
1
+ import { useEffect } from "react";
2
+ import { useInjectReducer } from "redux-injectors";
3
+ import {
4
+ addMiddleware,
5
+ removeMiddleware
6
+ } from "./queryMiddleware.js";
7
+ const useInjectQuery = ({
8
+ reducerPath,
9
+ reducer,
10
+ middleware
11
+ }) => {
12
+ useInjectReducer({ key: reducerPath, reducer });
13
+ return useEffect(() => {
14
+ if (!middleware)
15
+ return () => {
16
+ };
17
+ addMiddleware({ reducerPath, middleware });
18
+ return () => {
19
+ removeMiddleware(reducerPath);
20
+ };
21
+ }, [reducerPath, reducer, middleware]);
22
+ };
23
+ export {
24
+ useInjectQuery
25
+ };
package/dist/esm/index.js CHANGED
@@ -9,12 +9,19 @@ import { auth } from "./data/auth/actions.js";
9
9
  import { RequireAuth } from "./view/require-auth.js";
10
10
  import { Page } from "./view/page.js";
11
11
  import { default as default2 } from "./utils/constants.js";
12
- import { useAppDispatch, useAppSelector } from "./data/react-redux.js";
13
12
  import {
14
13
  useInjectReducer,
15
14
  useInjectSaga,
16
15
  createManager
17
- } from "./data/redux-injectors.js";
16
+ } from "redux-injectors";
17
+ import {
18
+ useInjectQuery,
19
+ useInjectListener,
20
+ useAppDispatch,
21
+ useAppSelector,
22
+ useAppMiddleware
23
+ } from "./data/react.js";
24
+ import { errorMiddleware } from "./data/errorMiddleware.js";
18
25
  import { getAuthorizationHeader } from "./utils/auth/helper.js";
19
26
  import { getRedirectUrl, removeDoubleSlash } from "./utils/url.js";
20
27
  import { createAppStore } from "./data/store.js";
@@ -151,6 +158,7 @@ export {
151
158
  createManager,
152
159
  enableReactAppForHostIntegration,
153
160
  actions2 as error,
161
+ errorMiddleware,
154
162
  fetchHostAppData,
155
163
  getUser as fetchUserSettings,
156
164
  getApiActionCreator,
@@ -201,7 +209,10 @@ export {
201
209
  trackActivity,
202
210
  updateBAEventParameters,
203
211
  useAppDispatch,
212
+ useAppMiddleware,
204
213
  useAppSelector,
214
+ useInjectListener,
215
+ useInjectQuery,
205
216
  useInjectReducer,
206
217
  useInjectSaga,
207
218
  useMediaQueryList,
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useContext } from "react";
2
2
  import { ThemeContext } from "styled-components";
3
3
  import { publish } from "pubsub-js";
4
- import { useAppDispatch } from "../../data/react-redux.js";
4
+ import { useAppDispatch } from "../../data/react.js";
5
5
  import { breakpoint } from "../../data/breakpoint/index.js";
6
6
  import { useMediaQueryList } from "./use-media-query-list.js";
7
7
  import { HOST_WINDOW_BREAKPOINT_CHANGED } from "../../utils/constants.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useEffect, memo } from "react";
3
3
  import { ToastPosition, ToastType, DSToast, toast } from "@elliemae/ds-toast";
4
- import { useAppSelector, useAppDispatch } from "../../data/react-redux.js";
4
+ import { useAppSelector, useAppDispatch } from "../../data/react.js";
5
5
  import { actions as error } from "../../data/error/index.js";
6
6
  const ErrorToast = memo((props) => {
7
7
  const storeError = useAppSelector((state) => state?.error);
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { LiveMessage as AriaLiveMessage } from "react-aria-live";
3
- import { useAppSelector } from "../../data/react-redux.js";
3
+ import { useAppSelector } from "../../data/react.js";
4
4
  const LiveMessage = () => {
5
5
  const message = useAppSelector((state) => state.liveMessage?.message);
6
6
  const id = useAppSelector((state) => state.liveMessage?.id);
@@ -1,6 +1,6 @@
1
1
  import { Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
- import { useAppDispatch } from "../../data/react-redux.js";
3
+ import { useAppDispatch } from "../../data/react.js";
4
4
  import { login } from "../../utils/auth/index.js";
5
5
  import { LOGIN_SUCCESS } from "../../data/auth/actions.js";
6
6
  const Login = ({
@@ -10,7 +10,7 @@ import {
10
10
  DSDialogSeparator,
11
11
  DSDialogAddon
12
12
  } from "@elliemae/ds-dialog";
13
- import { useAppDispatch } from "../../../data/react-redux.js";
13
+ import { useAppDispatch } from "../../../data/react.js";
14
14
  import { navigationPrompt } from "../../../data/navigation-prompt/actions.js";
15
15
  const NavigationPrompt = memo(
16
16
  ({ open = false }) => {
@@ -11,7 +11,7 @@ import {
11
11
  DSDialogFooter,
12
12
  DSDialogSeparator
13
13
  } from "@elliemae/ds-dialog";
14
- import { useAppDispatch } from "../../../data/react-redux.js";
14
+ import { useAppDispatch } from "../../../data/react.js";
15
15
  import { logout } from "../../../data/logout/actions.js";
16
16
  import {
17
17
  resetUserIdleTime,
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { memo, useEffect } from "react";
3
3
  import { DSLoadingIndicator } from "@elliemae/ds-loading-indicator";
4
- import { useAppSelector } from "../../../data/react-redux.js";
4
+ import { useAppSelector } from "../../../data/react.js";
5
5
  import { useHTMLWaitMessage } from "./use-html-wait-message.js";
6
6
  import {
7
7
  waitStartEvent,
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from "react";
2
- import { useAppDispatch } from "../../../data/react-redux.js";
2
+ import { useAppDispatch } from "../../../data/react.js";
3
3
  import { waitMessage } from "../../../data/wait-message/actions.js";
4
4
  const WaitMessageLauncher = () => {
5
5
  const dispatch = useAppDispatch();
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
- import { useAppDispatch } from "../../data/react-redux.js";
3
+ import { useAppDispatch } from "../../data/react.js";
4
4
  import { logout } from "../../data/logout/actions.js";
5
5
  import {
6
6
  initSessionMonitoring,
@@ -1,5 +1,5 @@
1
1
  import { Middleware } from 'redux';
2
- export declare const dynamicMiddleware: Middleware<any, any>;
2
+ export declare const appMiddleware: Middleware<any, any>;
3
3
  export declare const addMiddleware: ({ key, middleware, }: {
4
4
  key: string;
5
5
  middleware: Middleware<any, any>;
@@ -0,0 +1,2 @@
1
+ import type { Middleware } from '@reduxjs/toolkit';
2
+ export declare const errorMiddleware: Middleware;
@@ -1,4 +1,4 @@
1
1
  export { useInjectReducer, useInjectSaga, createManager, } from 'redux-injectors';
2
- export { useAppDispatch, useAppSelector } from './react-redux.js';
2
+ export { useAppDispatch, useAppSelector } from './react.js';
3
3
  export { createAppStore as configureStore, getStore } from './store.js';
4
4
  export type { RootState, AppStore } from './store.js';
@@ -0,0 +1,11 @@
1
+ import { Middleware, AnyAction } from 'redux';
2
+ declare const rtkListenerMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<unknown, import("@reduxjs/toolkit").ThunkDispatch<unknown, unknown, AnyAction>, unknown>;
3
+ export type ListenerDispatchFn = Parameters<typeof rtkListenerMiddleware.startListening>[0];
4
+ export declare const listenerMiddleware: Middleware<any, any>;
5
+ export declare const addListener: ({ key, listener, }: {
6
+ key: string;
7
+ listener: Parameters<typeof rtkListenerMiddleware.startListening>[0];
8
+ }) => import("@reduxjs/toolkit").UnsubscribeListener | null;
9
+ export declare const removeListener: (key: string) => boolean;
10
+ export declare const resetListeners: () => void;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import { createApi } from '@reduxjs/toolkit/query/react';
2
+ export type QueryMiddleware = ReturnType<typeof createApi>['middleware'];
3
+ export type QueryReducerPath = ReturnType<typeof createApi>['reducerPath'];
4
+ export type QueryReducer = ReturnType<typeof createApi>['middleware'];
5
+ export declare const queryMiddleware: QueryMiddleware;
6
+ export declare const addMiddleware: ({ reducerPath, middleware, }: {
7
+ reducerPath: QueryReducerPath;
8
+ middleware: QueryMiddleware;
9
+ }) => void;
10
+ export declare const removeMiddleware: (reducerPath: string) => void;
11
+ export declare const resetMiddlewares: () => void;
@@ -0,0 +1,5 @@
1
+ export { useInjectQuery } from './useInjectQuery.js';
2
+ export { useInjectListener } from './useInjectListener.js';
3
+ export { useAppDispatch } from './useAppDispatch.js';
4
+ export { useAppSelector } from './useAppSelector.js';
5
+ export { useAppMiddleware } from './useAppMiddleware.js';
@@ -1,3 +1,4 @@
1
+ import { Middleware } from 'redux';
1
2
  import { History } from 'history';
2
3
  declare const rootReducer: import("redux").Reducer<import("redux").CombinedState<{
3
4
  waitMessage: import("./wait-message/reducer.js").WaitMessageState;
@@ -33,11 +34,11 @@ export declare const createAppStore: (initialState: import("redux").CombinedStat
33
34
  } | import("redux").AnyAction | {
34
35
  payload: import("./breakpoint/index.js").Breakpoints;
35
36
  type: string;
36
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ListenerMiddleware<unknown, import("@reduxjs/toolkit").ThunkDispatch<unknown, unknown, import("redux").AnyAction>, unknown>, import("@reduxjs/toolkit").ThunkMiddleware<import("redux").CombinedState<{
37
+ }, import("@reduxjs/toolkit").MiddlewareArray<[Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("@reduxjs/toolkit").ThunkMiddleware<import("redux").CombinedState<{
37
38
  waitMessage: import("./wait-message/reducer.js").WaitMessageState;
38
39
  error: import("./error/index.js").ErrorState;
39
40
  breakpoint: import("./breakpoint/index.js").BreakpointState;
40
41
  liveMessage: import("./live-message/index.js").LiveMessageState;
41
- }>, import("redux").AnyAction, undefined>, ...import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>[]]>>;
42
+ }>, import("redux").AnyAction, undefined>, ...Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>[]]>>;
42
43
  export type AppStore = ReturnType<typeof createAppStore>;
43
44
  export {};
@@ -1,11 +1,8 @@
1
1
  import { Dispatch, PayloadAction, AnyAction } from '@reduxjs/toolkit';
2
- import { TypedUseSelectorHook } from 'react-redux';
3
- import { RootState } from './store.js';
4
2
  import { WaitMessageState } from './wait-message/reducer.js';
5
3
  import { BreakpointState } from './breakpoint/index.js';
6
4
  import { ErrorState } from './error/index.js';
7
5
  import { LiveMessageState } from './live-message/index.js';
8
6
  type AppDispatch = Dispatch<PayloadAction<WaitMessageState> | PayloadAction<BreakpointState> | PayloadAction<ErrorState> | PayloadAction<LiveMessageState> | AnyAction>;
9
7
  export declare const useAppDispatch: () => AppDispatch;
10
- export declare const useAppSelector: TypedUseSelectorHook<RootState>;
11
8
  export {};
@@ -0,0 +1,5 @@
1
+ import { Middleware } from 'redux';
2
+ export declare const useAppMiddleware: ({ key, middleware, }: {
3
+ key: string;
4
+ middleware: Middleware<any, any>;
5
+ }) => void;
@@ -0,0 +1,3 @@
1
+ import { TypedUseSelectorHook } from 'react-redux';
2
+ import { RootState } from './store.js';
3
+ export declare const useAppSelector: TypedUseSelectorHook<RootState>;
@@ -0,0 +1,5 @@
1
+ import { ListenerDispatchFn } from './listenerMiddleware.js';
2
+ export declare const useInjectListener: ({ key, listener, }: {
3
+ key: string;
4
+ listener: ListenerDispatchFn;
5
+ }) => void;
@@ -0,0 +1,6 @@
1
+ import { QueryMiddleware, QueryReducerPath, QueryReducer } from './queryMiddleware.js';
2
+ export declare const useInjectQuery: ({ reducerPath, reducer, middleware, }: {
3
+ reducerPath: QueryReducerPath;
4
+ reducer: QueryReducer;
5
+ middleware: QueryMiddleware;
6
+ }) => void;
@@ -6,8 +6,9 @@ export { auth } from './data/auth/actions.js';
6
6
  export { RequireAuth } from './view/require-auth.js';
7
7
  export { Page } from './view/page.js';
8
8
  export { default as globalConstants } from './utils/constants.js';
9
- export { useAppDispatch, useAppSelector } from './data/react-redux.js';
10
- export { useInjectReducer, useInjectSaga, createManager, } from './data/redux-injectors.js';
9
+ export { useInjectReducer, useInjectSaga, createManager, } from 'redux-injectors';
10
+ export { useInjectQuery, useInjectListener, useAppDispatch, useAppSelector, useAppMiddleware, } from './data/react.js';
11
+ export { errorMiddleware } from './data/errorMiddleware.js';
11
12
  export { getAuthorizationHeader } from './utils/auth/helper.js';
12
13
  export { getRedirectUrl, removeDoubleSlash } from './utils/url.js';
13
14
  export { createAppStore as configureStore } from './data/store.js';
@@ -16,7 +16,7 @@ export declare const renderWithRedux: (ui: React.ReactElement, { initialState, s
16
16
  } | import("redux").AnyAction | {
17
17
  payload: import("../../data/breakpoint/index.js").Breakpoints;
18
18
  type: string;
19
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ListenerMiddleware<unknown, import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").AnyAction>, unknown>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
19
+ }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
20
20
  waitMessage: import("../../data/wait-message/reducer.js").WaitMessageState;
21
21
  error: import("../../data/error/index.js").ErrorState;
22
22
  breakpoint: import("../../data/breakpoint/index.js").BreakpointState;
@@ -19,7 +19,7 @@ export declare const renderWithRouterRedux: (ui: React.ReactElement, { route, hi
19
19
  } | import("redux").AnyAction | {
20
20
  payload: import("../../data/breakpoint/index.js").Breakpoints;
21
21
  type: string;
22
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ListenerMiddleware<unknown, import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").AnyAction>, unknown>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
22
+ }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
23
23
  waitMessage: import("../../data/wait-message/reducer.js").WaitMessageState;
24
24
  error: import("../../data/error/index.js").ErrorState;
25
25
  breakpoint: import("../../data/breakpoint/index.js").BreakpointState;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-app-sdk",
3
- "version": "4.10.0-beta.2",
3
+ "version": "4.10.0-beta.4",
4
4
  "description": "ICE MT UI Platform Application SDK ",
5
5
  "sideEffects": [
6
6
  "*.css",
@@ -111,7 +111,7 @@
111
111
  "indent": 4
112
112
  },
113
113
  "peerDependencies": {
114
- "@elliemae/app-react-dependencies": "^4.3.0",
114
+ "@elliemae/app-react-dependencies": "^4.4.0",
115
115
  "@elliemae/ds-basic": "^3.13.0",
116
116
  "@elliemae/ds-button": "^3.13.0",
117
117
  "@elliemae/ds-controlled-form": "^3.13.0",
@@ -133,7 +133,7 @@
133
133
  "@elliemae/pui-user-monitoring": "^1.18.1"
134
134
  },
135
135
  "devDependencies": {
136
- "@elliemae/app-react-dependencies": "~4.3.0",
136
+ "@elliemae/app-react-dependencies": "~4.4.0",
137
137
  "@elliemae/browserslist-config-elliemae-latest-browsers": "~1.6.0",
138
138
  "@elliemae/ds-basic": "~3.13.0",
139
139
  "@elliemae/ds-button": "~3.13.0",
@@ -149,7 +149,7 @@
149
149
  "@elliemae/ds-popperjs": "~3.13.0",
150
150
  "@elliemae/ds-toast": "~3.13.0",
151
151
  "@elliemae/em-ssf-guest": "~1.11.2",
152
- "@elliemae/pui-cli": "~7.25.0",
152
+ "@elliemae/pui-cli": "~7.26.0",
153
153
  "@elliemae/pui-diagnostics": "~2.7.5",
154
154
  "@elliemae/pui-doc-gen": "~1.4.1",
155
155
  "@elliemae/pui-e2e-test-sdk": "~7.7.1",
@@ -1,7 +0,0 @@
1
- import { useDispatch, useSelector } from "react-redux";
2
- const useAppDispatch = () => useDispatch();
3
- const useAppSelector = useSelector;
4
- export {
5
- useAppDispatch,
6
- useAppSelector
7
- };
@@ -1,17 +0,0 @@
1
- import { useInjectReducer as useOriginalInjectReducer } from "redux-injectors";
2
- import { addMiddleware } from "./dynamicMiddleware.js";
3
- const useInjectReducer = ({
4
- key,
5
- reducer,
6
- middleware
7
- }) => {
8
- useOriginalInjectReducer({ key, reducer });
9
- if (middleware)
10
- addMiddleware({ key, middleware });
11
- };
12
- import { useInjectSaga, createManager } from "redux-injectors";
13
- export {
14
- createManager,
15
- useInjectReducer,
16
- useInjectSaga
17
- };
@@ -1,7 +0,0 @@
1
- import { Middleware, Reducer } from 'redux';
2
- export declare const useInjectReducer: ({ key, reducer, middleware, }: {
3
- key: string;
4
- reducer: Reducer;
5
- middleware?: Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>> | undefined;
6
- }) => void;
7
- export { useInjectSaga, createManager } from 'redux-injectors';