@beinformed/ui 1.59.7 → 1.59.9

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/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.59.9](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.8...v1.59.9) (2024-12-13)
6
+
7
+ ## [1.59.8](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.7...v1.59.8) (2024-12-12)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **modularui:** log message in stead of exceptions ([9962997](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/9962997e3efc18b658a2c9fb49c0440b350010c5))
13
+ * **modularui:** log message in stead of exceptions ([771a38c](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/771a38c6d57882c4b609c55d443eef2f3ca53099))
14
+
5
15
  ## [1.59.7](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.6...v1.59.7) (2024-12-12)
6
16
 
7
17
 
@@ -116,7 +116,11 @@ export const loadModel = (key, href, options) => ({
116
116
 
117
117
  /**
118
118
  */
119
- export const loadModularUI = (key, href, options) => dispatch => {
119
+ export const loadModularUI = (key, href, options) => (dispatch, getState) => {
120
+ const modularuiStore = getState()?.modularui;
121
+ if (modularuiStore && modularuiStore[key]?.status === MODULARUI_STATUS.LOADING) {
122
+ return _Promise.resolve();
123
+ }
120
124
  dispatch(startProgress());
121
125
  const loadModelPromise = dispatch(loadModel(key, href, options));
122
126
  return _Promise.resolve(loadModelPromise).then(() => dispatch(finishProgress())).catch(error => dispatch(handleError(error)));
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","origin","contextPath","method","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","loadModelPromise","_Promise","resolve","then","catch","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","origin","contextPath","method","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_Promise","resolve","loadModelPromise","then","catch","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
2
2
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
3
3
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
4
- import { IllegalArgumentException } from "../../exceptions";
5
4
  import { MODULARUI_STATUS } from "../../constants/Constants";
6
5
  import { ApplicationModel } from "../../models";
7
6
  /**
@@ -46,7 +45,10 @@ const setModel = (state, _ref2) => {
46
45
  }
47
46
  };
48
47
  }
49
- throw new IllegalArgumentException("No model for setModel");
48
+
49
+ // eslint-disable-next-line no-console
50
+ console.debug("No model for setModel");
51
+ return state;
50
52
  };
51
53
 
52
54
  /**
@@ -87,7 +89,10 @@ const updateModel = (state, model) => {
87
89
  model
88
90
  });
89
91
  }
90
- throw new Error(`ModularUIReducer: Cannot update model with key ${model.connectKey}`);
92
+
93
+ // eslint-disable-next-line no-console
94
+ console.debug(`ModularUIReducer: Cannot update model with key ${model.connectKey}`);
95
+ return state;
91
96
  };
92
97
 
93
98
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIReducer.js","names":["IllegalArgumentException","MODULARUI_STATUS","ApplicationModel","updateStatus","state","_ref","key","status","LOADING","lastModification","Date","now","setModel","_ref2","model","FINISHED","initModularUI","models","newState","_Object$assign","forEach","_ref3","getModelKey","_context","_findInstanceProperty","_Object$keys","call","connectKey","updateModel","modelKey","Error","removeKey","resetModularUI","initialState","ModularUIReducer","arguments","length","undefined","action","type","payload"],"sources":["../../../src/redux/_modularui/ModularUIReducer.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n */\nconst updateStatus = (\n state: ModularUIState,\n { key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> },\n) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (\n state: ModularUIState,\n { key, model }: { key: string, model: ?ModularUIModel },\n) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n status: MODULARUI_STATUS.FINISHED,\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst initModularUI = (\n state: ModularUIState,\n models: Array<{ key: string, model: ModularUIModel }>,\n) => {\n const newState = Object.assign({}, state);\n\n models.forEach(({ key, model }) => {\n newState[key] = {\n status: MODULARUI_STATUS.FINISHED,\n lastModification: Date.now(),\n model,\n };\n });\n\n return newState;\n};\n\n/**\n */\nconst getModelKey = (state: ModularUIState, model: ModularUIModel) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state: ModularUIState, model: ModularUIModel) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`,\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n const newState = Object.assign({}, state);\n delete newState[modelKey];\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState: ModularUIState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action,\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/INIT\":\n return initModularUI(state, action.payload);\n\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n case \"MODULARUI/UPDATE_FORM\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIReducer.js","names":["MODULARUI_STATUS","ApplicationModel","updateStatus","state","_ref","key","status","LOADING","lastModification","Date","now","setModel","_ref2","model","FINISHED","console","debug","initModularUI","models","newState","_Object$assign","forEach","_ref3","getModelKey","_context","_findInstanceProperty","_Object$keys","call","connectKey","updateModel","modelKey","removeKey","resetModularUI","initialState","ModularUIReducer","arguments","length","undefined","action","type","payload"],"sources":["../../../src/redux/_modularui/ModularUIReducer.js"],"sourcesContent":["// @flow\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n */\nconst updateStatus = (\n state: ModularUIState,\n { key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> },\n) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (\n state: ModularUIState,\n { key, model }: { key: string, model: ?ModularUIModel },\n) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n status: MODULARUI_STATUS.FINISHED,\n },\n };\n }\n\n // eslint-disable-next-line no-console\n console.debug(\"No model for setModel\");\n return state;\n};\n\n/**\n */\nconst initModularUI = (\n state: ModularUIState,\n models: Array<{ key: string, model: ModularUIModel }>,\n) => {\n const newState = Object.assign({}, state);\n\n models.forEach(({ key, model }) => {\n newState[key] = {\n status: MODULARUI_STATUS.FINISHED,\n lastModification: Date.now(),\n model,\n };\n });\n\n return newState;\n};\n\n/**\n */\nconst getModelKey = (state: ModularUIState, model: ModularUIModel) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state: ModularUIState, model: ModularUIModel) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n // eslint-disable-next-line no-console\n console.debug(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`,\n );\n return state;\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n const newState = Object.assign({}, state);\n delete newState[modelKey];\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState: ModularUIState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action,\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/INIT\":\n return initModularUI(state, action.payload);\n\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n case \"MODULARUI/UPDATE_FORM\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -131,7 +131,11 @@ const loadModel = (key, href, options) => ({
131
131
  /**
132
132
  */
133
133
  exports.loadModel = loadModel;
134
- const loadModularUI = (key, href, options) => dispatch => {
134
+ const loadModularUI = (key, href, options) => (dispatch, getState) => {
135
+ const modularuiStore = getState()?.modularui;
136
+ if (modularuiStore && modularuiStore[key]?.status === _Constants.MODULARUI_STATUS.LOADING) {
137
+ return _promise.default.resolve();
138
+ }
135
139
  dispatch((0, _ProgressIndicator.startProgress)());
136
140
  const loadModelPromise = dispatch(loadModel(key, href, options));
137
141
  return _promise.default.resolve(loadModelPromise).then(() => dispatch((0, _ProgressIndicator.finishProgress)())).catch(error => dispatch((0, _Error.handleError)(error)));
@@ -158,7 +158,15 @@ export const loadModularUI =
158
158
  href: Href | string,
159
159
  options?: RequestModularUIOptions,
160
160
  ): ThunkAction =>
161
- (dispatch: Dispatch) => {
161
+ (dispatch: Dispatch, getState) => {
162
+ const modularuiStore = getState()?.modularui;
163
+ if (
164
+ modularuiStore &&
165
+ modularuiStore[key]?.status === MODULARUI_STATUS.LOADING
166
+ ) {
167
+ return Promise.resolve();
168
+ }
169
+
162
170
  dispatch(startProgress());
163
171
 
164
172
  const loadModelPromise = dispatch(loadModel(key, href, options));
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIActions.js","names":["_Constants","require","_Href","_interopRequireDefault","_ErrorResponse","_ProgressIndicator","_Error","setModel","key","model","connectKey","type","payload","exports","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","origin","contextPath","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","startProgress","loadModelPromise","_promise","default","resolve","then","finishProgress","catch","handleError","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIActions.js","names":["_Constants","require","_Href","_interopRequireDefault","_ErrorResponse","_ProgressIndicator","_Error","setModel","key","model","connectKey","type","payload","exports","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","loadModel","href","options","origin","contextPath","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","forceTargetModel","cache","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_promise","default","resolve","startProgress","loadModelPromise","then","finishProgress","catch","handleError","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,6 @@ exports.ModularUIReducer = void 0;
8
8
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
9
9
  var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
10
10
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
11
- var _exceptions = require("../../exceptions");
12
11
  var _Constants = require("../../constants/Constants");
13
12
  var _models = require("../../models");
14
13
  /**
@@ -53,7 +52,10 @@ const setModel = (state, _ref2) => {
53
52
  }
54
53
  };
55
54
  }
56
- throw new _exceptions.IllegalArgumentException("No model for setModel");
55
+
56
+ // eslint-disable-next-line no-console
57
+ console.debug("No model for setModel");
58
+ return state;
57
59
  };
58
60
 
59
61
  /**
@@ -94,7 +96,10 @@ const updateModel = (state, model) => {
94
96
  model
95
97
  });
96
98
  }
97
- throw new Error(`ModularUIReducer: Cannot update model with key ${model.connectKey}`);
99
+
100
+ // eslint-disable-next-line no-console
101
+ console.debug(`ModularUIReducer: Cannot update model with key ${model.connectKey}`);
102
+ return state;
98
103
  };
99
104
 
100
105
  /**
@@ -1,5 +1,4 @@
1
1
  // @flow
2
- import { IllegalArgumentException } from "../../exceptions";
3
2
  import { MODULARUI_STATUS } from "../../constants/Constants";
4
3
  import { ApplicationModel } from "../../models";
5
4
 
@@ -51,7 +50,9 @@ const setModel = (
51
50
  };
52
51
  }
53
52
 
54
- throw new IllegalArgumentException("No model for setModel");
53
+ // eslint-disable-next-line no-console
54
+ console.debug("No model for setModel");
55
+ return state;
55
56
  };
56
57
 
57
58
  /**
@@ -90,9 +91,11 @@ const updateModel = (state: ModularUIState, model: ModularUIModel) => {
90
91
  return setModel(state, { key: modelKey, model });
91
92
  }
92
93
 
93
- throw new Error(
94
+ // eslint-disable-next-line no-console
95
+ console.debug(
94
96
  `ModularUIReducer: Cannot update model with key ${model.connectKey}`,
95
97
  );
98
+ return state;
96
99
  };
97
100
 
98
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ModularUIReducer.js","names":["_exceptions","require","_Constants","_models","updateStatus","state","_ref","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","_ref2","model","FINISHED","IllegalArgumentException","initModularUI","models","newState","_assign","default","forEach","_ref3","getModelKey","_context","_find","_keys","call","connectKey","updateModel","modelKey","Error","removeKey","resetModularUI","ApplicationModel","initialState","ModularUIReducer","arguments","length","undefined","action","type","payload","exports"],"sources":["../../../src/redux/_modularui/ModularUIReducer.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n */\nconst updateStatus = (\n state: ModularUIState,\n { key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> },\n) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (\n state: ModularUIState,\n { key, model }: { key: string, model: ?ModularUIModel },\n) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n status: MODULARUI_STATUS.FINISHED,\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst initModularUI = (\n state: ModularUIState,\n models: Array<{ key: string, model: ModularUIModel }>,\n) => {\n const newState = Object.assign({}, state);\n\n models.forEach(({ key, model }) => {\n newState[key] = {\n status: MODULARUI_STATUS.FINISHED,\n lastModification: Date.now(),\n model,\n };\n });\n\n return newState;\n};\n\n/**\n */\nconst getModelKey = (state: ModularUIState, model: ModularUIModel) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state: ModularUIState, model: ModularUIModel) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`,\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n const newState = Object.assign({}, state);\n delete newState[modelKey];\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState: ModularUIState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action,\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/INIT\":\n return initModularUI(state, action.payload);\n\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n case \"MODULARUI/UPDATE_FORM\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModularUIReducer.js","names":["_Constants","require","_models","updateStatus","state","_ref","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","_ref2","model","FINISHED","console","debug","initModularUI","models","newState","_assign","default","forEach","_ref3","getModelKey","_context","_find","_keys","call","connectKey","updateModel","modelKey","removeKey","resetModularUI","ApplicationModel","initialState","ModularUIReducer","arguments","length","undefined","action","type","payload","exports"],"sources":["../../../src/redux/_modularui/ModularUIReducer.js"],"sourcesContent":["// @flow\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n */\nconst updateStatus = (\n state: ModularUIState,\n { key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> },\n) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (\n state: ModularUIState,\n { key, model }: { key: string, model: ?ModularUIModel },\n) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n status: MODULARUI_STATUS.FINISHED,\n },\n };\n }\n\n // eslint-disable-next-line no-console\n console.debug(\"No model for setModel\");\n return state;\n};\n\n/**\n */\nconst initModularUI = (\n state: ModularUIState,\n models: Array<{ key: string, model: ModularUIModel }>,\n) => {\n const newState = Object.assign({}, state);\n\n models.forEach(({ key, model }) => {\n newState[key] = {\n status: MODULARUI_STATUS.FINISHED,\n lastModification: Date.now(),\n model,\n };\n });\n\n return newState;\n};\n\n/**\n */\nconst getModelKey = (state: ModularUIState, model: ModularUIModel) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state: ModularUIState, model: ModularUIModel) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n // eslint-disable-next-line no-console\n console.debug(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`,\n );\n return state;\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n const newState = Object.assign({}, state);\n delete newState[modelKey];\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState: ModularUIState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action,\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/INIT\":\n return initModularUI(state, action.payload);\n\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n case \"MODULARUI/UPDATE_FORM\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -107,15 +107,15 @@ describe("modularui reducer", () => {
107
107
 
108
108
  it("should handle MODULARUI/UPDATE without existing model", () => {
109
109
  application.connectKey = "modelKey";
110
- expect(() => {
110
+ expect(
111
111
  ModularUIReducer(
112
112
  {},
113
113
  {
114
114
  type: "MODULARUI/UPDATE",
115
115
  payload: application,
116
116
  },
117
- );
118
- }).toThrow("ModularUIReducer: Cannot update model with key modelKey");
117
+ ),
118
+ ).toStrictEqual({});
119
119
  });
120
120
 
121
121
  it("should handle MODULARUI/REMOVE_KEY", () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.59.7",
3
+ "version": "1.59.9",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -158,7 +158,15 @@ export const loadModularUI =
158
158
  href: Href | string,
159
159
  options?: RequestModularUIOptions,
160
160
  ): ThunkAction =>
161
- (dispatch: Dispatch) => {
161
+ (dispatch: Dispatch, getState) => {
162
+ const modularuiStore = getState()?.modularui;
163
+ if (
164
+ modularuiStore &&
165
+ modularuiStore[key]?.status === MODULARUI_STATUS.LOADING
166
+ ) {
167
+ return Promise.resolve();
168
+ }
169
+
162
170
  dispatch(startProgress());
163
171
 
164
172
  const loadModelPromise = dispatch(loadModel(key, href, options));
@@ -1,5 +1,4 @@
1
1
  // @flow
2
- import { IllegalArgumentException } from "../../exceptions";
3
2
  import { MODULARUI_STATUS } from "../../constants/Constants";
4
3
  import { ApplicationModel } from "../../models";
5
4
 
@@ -51,7 +50,9 @@ const setModel = (
51
50
  };
52
51
  }
53
52
 
54
- throw new IllegalArgumentException("No model for setModel");
53
+ // eslint-disable-next-line no-console
54
+ console.debug("No model for setModel");
55
+ return state;
55
56
  };
56
57
 
57
58
  /**
@@ -90,9 +91,11 @@ const updateModel = (state: ModularUIState, model: ModularUIModel) => {
90
91
  return setModel(state, { key: modelKey, model });
91
92
  }
92
93
 
93
- throw new Error(
94
+ // eslint-disable-next-line no-console
95
+ console.debug(
94
96
  `ModularUIReducer: Cannot update model with key ${model.connectKey}`,
95
97
  );
98
+ return state;
96
99
  };
97
100
 
98
101
  /**
@@ -107,15 +107,15 @@ describe("modularui reducer", () => {
107
107
 
108
108
  it("should handle MODULARUI/UPDATE without existing model", () => {
109
109
  application.connectKey = "modelKey";
110
- expect(() => {
110
+ expect(
111
111
  ModularUIReducer(
112
112
  {},
113
113
  {
114
114
  type: "MODULARUI/UPDATE",
115
115
  payload: application,
116
116
  },
117
- );
118
- }).toThrow("ModularUIReducer: Cannot update model with key modelKey");
117
+ ),
118
+ ).toStrictEqual({});
119
119
  });
120
120
 
121
121
  it("should handle MODULARUI/REMOVE_KEY", () => {