@beinformed/ui 1.19.3 → 1.19.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.
- package/CHANGELOG.md +6 -0
- package/esm/redux/actions/Application.js +2 -1
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js +5 -2
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/SignOut.js +1 -1
- package/esm/redux/actions/SignOut.js.map +1 -1
- package/lib/hooks/__tests__/useAuthentication.spec.js.flow +8 -0
- package/lib/redux/actions/Application.js +1 -0
- package/lib/redux/actions/Application.js.flow +3 -1
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js +6 -2
- package/lib/redux/actions/Authorization.js.flow +4 -2
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/SignOut.js.flow +1 -1
- package/lib/redux/actions/SignOut.js.map +1 -1
- package/lib/redux/actions/__tests__/Application.spec.js.flow +8 -0
- package/lib/redux/actions/__tests__/Authorization.spec.js.flow +4 -0
- package/package.json +2 -14
- package/src/hooks/__tests__/useAuthentication.spec.js +8 -0
- package/src/redux/actions/Application.js +3 -1
- package/src/redux/actions/Authorization.js +4 -2
- package/src/redux/actions/SignOut.js +1 -1
- package/src/redux/actions/__tests__/Application.spec.js +8 -0
- package/src/redux/actions/__tests__/Authorization.spec.js +4 -0
- package/builder/package.json +0 -8
- package/exceptions/package.json +0 -8
- package/hooks/package.json +0 -8
- package/i18n/package.json +0 -8
- package/models/package.json +0 -8
- package/modularui/package.json +0 -8
- package/react/package.json +0 -8
- package/react-client/package.json +0 -8
- package/react-server/package.json +0 -8
- package/react-theme/package.json +0 -8
- package/redux/package.json +0 -8
- package/utils/package.json +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.19.4](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.19.3...v1.19.4) (2022-06-17)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **authentication:** improve isLoggedIn on application model ([b078c7d](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/b078c7dc03bfeb2b3d65643dce1b1da8ddd2cc90))
|
|
10
|
+
|
|
5
11
|
### [1.19.3](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.19.2...v1.19.3) (2022-06-17)
|
|
6
12
|
|
|
7
13
|
### [1.19.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.19.1...v1.19.2) (2022-06-17)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { loadModularUI } from "../_modularui/actions";
|
|
1
|
+
import { loadModularUI, removeModelByKey } from "../_modularui/actions";
|
|
2
2
|
import { keyByHref } from "../_modularui/selectors";
|
|
3
3
|
import { ApplicationModel, Href } from "../../models";
|
|
4
4
|
|
|
@@ -15,6 +15,7 @@ export var reloadApplication = function reloadApplication() {
|
|
|
15
15
|
modelKey = "application(/)(".concat(locale, ")");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
dispatch(removeModelByKey(modelKey));
|
|
18
19
|
return dispatch(loadModularUI(modelKey, new Href("/", "Application"), {
|
|
19
20
|
targetModel: ApplicationModel
|
|
20
21
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","names":["loadModularUI","keyByHref","ApplicationModel","Href","reloadApplication","dispatch","getState","modelKey","locale","i18n","targetModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":"AACA,SAASA,aAAT,
|
|
1
|
+
{"version":3,"file":"Application.js","names":["loadModularUI","removeModelByKey","keyByHref","ApplicationModel","Href","reloadApplication","dispatch","getState","modelKey","locale","i18n","targetModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI, removeModelByKey } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n dispatch(removeModelByKey(modelKey));\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":"AACA,SAASA,aAAT,EAAwBC,gBAAxB,QAAgD,uBAAhD;AACA,SAASC,SAAT,QAA0B,yBAA1B;AACA,SAASC,gBAAT,EAA2BC,IAA3B,QAAuC,cAAvC;;AAIA;AACA;AACA,OAAO,IAAMC,iBAAiB,GAC5B,SADWA,iBACX;EAAA,OAAmB,UAACC,QAAD,EAAqBC,QAArB,EAA4C;IAC7D,IAAIC,QAAQ,GAAGN,SAAS,CAACK,QAAQ,EAAT,EAAa,GAAb,CAAxB;;IAEA,IAAI,CAACC,QAAL,EAAe;MAAA;;MACb,IAAMC,MAAM,qBAAGF,QAAQ,GAAGG,IAAd,mDAAG,eAAiBD,MAAhC;MACAD,QAAQ,4BAAqBC,MAArB,MAAR;IACD;;IAEDH,QAAQ,CAACL,gBAAgB,CAACO,QAAD,CAAjB,CAAR;IAEA,OAAOF,QAAQ,CACbN,aAAa,CAACQ,QAAD,EAAW,IAAIJ,IAAJ,CAAS,GAAT,EAAc,aAAd,CAAX,EAAyC;MACpDO,WAAW,EAAER;IADuC,CAAzC,CADA,CAAf;EAKD,CAfD;AAAA,CADK"}
|
|
@@ -5,6 +5,7 @@ import { logoutSuccess } from "./SignOut";
|
|
|
5
5
|
import { showNotification } from "./Notification";
|
|
6
6
|
import Cache from "../../utils/browser/Cache";
|
|
7
7
|
import { removeModelByKey } from "../_modularui/actions";
|
|
8
|
+
import { getApplication } from "../_modularui/selectors";
|
|
8
9
|
import { reloadApplication } from "./Application";
|
|
9
10
|
import { getSetting } from "../../constants";
|
|
10
11
|
|
|
@@ -21,10 +22,12 @@ export var handleUnauthorized = function handleUnauthorized(errorResponse) {
|
|
|
21
22
|
if (getSetting("PAGE_RELOAD_ON_UNAUTHORIZED_ERROR", false) && (_errorResponse$respon = errorResponse.response) !== null && _errorResponse$respon !== void 0 && _errorResponse$respon.error) {
|
|
22
23
|
window.location.reload();
|
|
23
24
|
return;
|
|
24
|
-
} // reload application when flag auth is set
|
|
25
|
+
} // reload application when flag auth is set or isLogged
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
var application = getApplication(getState());
|
|
29
|
+
|
|
30
|
+
if (Cache.getItem("auth") || application !== null && application !== void 0 && application.isLoggedIn) {
|
|
28
31
|
dispatch(reloadApplication());
|
|
29
32
|
} // set logged auth
|
|
30
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.js","names":["LOGIN_PATH","NOTIFICATION_TYPES","ErrorResponse","replace","logoutSuccess","showNotification","Cache","removeModelByKey","reloadApplication","getSetting","handleUnauthorized","errorResponse","dispatch","getState","connectKey","response","error","window","location","reload","getItem","removeItem","isInvalidUsername","WARNING_TIMEOUT","WARNING","id","defaultMessage","message","router","pathname","locationFrom","state","from","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set\n if (Cache.getItem(\"auth\")) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":"AACA,SAASA,UAAT,EAAqBC,kBAArB,QAA+C,2BAA/C;AAEA,OAAOC,aAAP,MAA0B,kCAA1B;AAEA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,aAAT,QAA8B,WAA9B;AACA,SAASC,gBAAT,QAAiC,gBAAjC;AAEA,OAAOC,KAAP,MAAkB,2BAAlB;AAEA,SAASC,gBAAT,QAAiC,uBAAjC;AACA,SAASC,iBAAT,QAAkC,eAAlC;AAEA,SAASC,UAAT,QAA2B,iBAA3B;;AAIA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,
|
|
1
|
+
{"version":3,"file":"Authorization.js","names":["LOGIN_PATH","NOTIFICATION_TYPES","ErrorResponse","replace","logoutSuccess","showNotification","Cache","removeModelByKey","getApplication","reloadApplication","getSetting","handleUnauthorized","errorResponse","dispatch","getState","connectKey","response","error","window","location","reload","application","getItem","isLoggedIn","removeItem","isInvalidUsername","WARNING_TIMEOUT","WARNING","id","defaultMessage","message","router","pathname","locationFrom","state","from","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { getApplication } from \"../_modularui/selectors\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set or isLogged\n const application = getApplication(getState());\n if (Cache.getItem(\"auth\") || application?.isLoggedIn) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":"AACA,SAASA,UAAT,EAAqBC,kBAArB,QAA+C,2BAA/C;AAEA,OAAOC,aAAP,MAA0B,kCAA1B;AAEA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,aAAT,QAA8B,WAA9B;AACA,SAASC,gBAAT,QAAiC,gBAAjC;AAEA,OAAOC,KAAP,MAAkB,2BAAlB;AAEA,SAASC,gBAAT,QAAiC,uBAAjC;AACA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,iBAAT,QAAkC,eAAlC;AAEA,SAASC,UAAT,QAA2B,iBAA3B;;AAIA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,CAACN,gBAAgB,CAACK,aAAa,CAACG,UAAf,CAAjB,CAAR;IACD;;IAED,IACEL,UAAU,CAAC,mCAAD,EAAsC,KAAtC,CAAV,6BACAE,aAAa,CAACI,QADd,kDACA,sBAAwBC,KAF1B,EAGE;MACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;MACA;IACD,CAXqB,CAatB;;;IACA,IAAMC,WAAW,GAAGb,cAAc,CAACM,QAAQ,EAAT,CAAlC;;IACA,IAAIR,KAAK,CAACgB,OAAN,CAAc,MAAd,KAAyBD,WAAzB,aAAyBA,WAAzB,eAAyBA,WAAW,CAAEE,UAA1C,EAAsD;MACpDV,QAAQ,CAACJ,iBAAiB,EAAlB,CAAR;IACD,CAjBqB,CAmBtB;;;IACAI,QAAQ,CAACT,aAAa,EAAd,CAAR;IAEAE,KAAK,CAACkB,UAAN,CAAiB,MAAjB;;IAEA,IAAIZ,aAAa,CAACa,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAb,QAAQ,CACNR,gBAAgB,CACdJ,kBAAkB,CAAC0B,OADL,EAEd;QACEC,EAAE,EAAEhB,aAAa,CAACgB,EADpB;QAEEC,cAAc,EAAEjB,aAAa,CAACkB;MAFhC,CAFc,EAMd,IANc,EAOdJ,eAPc,CADV,CAAR;IAWD,CArCqB,CAuCtB;;;IACA,IAAMP,QAAQ,GAAGL,QAAQ,GAAGiB,MAAX,CAAkBZ,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEa,QAAV,MAAuBhC,UAA3B,EAAuC;MAAA;;MACrC,IAAMiC,YAAY,GAAGd,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEe,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAOtB,QAAQ,CACbV,OAAO,CAACH,UAAD,EAAa;QAClBmC,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkBnB,QAAQ,GAAGiB,MAAX,CAAkBZ,QADpC;QAElB;QACAiB,KAAK,EAAE;MAHW,CAAb,CADM,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CAtDD;AAAA,CADK"}
|
|
@@ -2,10 +2,10 @@ import Authenticate from "../../modularui/Authenticate";
|
|
|
2
2
|
import { startProgress, finishProgress } from "./ProgressIndicator";
|
|
3
3
|
import { resetModularUI } from "../_modularui/actions";
|
|
4
4
|
import { reloadApplication } from "./Application";
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* Send logout success action
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
export var logoutSuccess = function logoutSuccess() {
|
|
10
10
|
return {
|
|
11
11
|
type: "AUTHENTICATION_LOGOUT"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignOut.js","names":["Authenticate","startProgress","finishProgress","resetModularUI","reloadApplication","logoutSuccess","type","logout","dispatch","then"],"sources":["../../../src/redux/actions/SignOut.js"],"sourcesContent":["// @flow\nimport Authenticate from \"../../modularui/Authenticate\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { resetModularUI } from \"../_modularui/actions\";\
|
|
1
|
+
{"version":3,"file":"SignOut.js","names":["Authenticate","startProgress","finishProgress","resetModularUI","reloadApplication","logoutSuccess","type","logout","dispatch","then"],"sources":["../../../src/redux/actions/SignOut.js"],"sourcesContent":["// @flow\nimport Authenticate from \"../../modularui/Authenticate\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { resetModularUI } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport type { Dispatch, LogoutSuccessAction, ThunkAction } from \"../types\";\n\n/**\n * Send logout success action\n */\nexport const logoutSuccess = (): LogoutSuccessAction => ({\n type: \"AUTHENTICATION_LOGOUT\",\n});\n\n/**\n */\nexport const logout = (): ThunkAction => (dispatch: Dispatch) => {\n dispatch(startProgress());\n\n return new Authenticate()\n .logout()\n .then(() => dispatch(resetModularUI()))\n .then(() => dispatch(reloadApplication()))\n .then(() => {\n dispatch(logoutSuccess());\n return dispatch(finishProgress());\n });\n};\n"],"mappings":"AACA,OAAOA,YAAP,MAAyB,8BAAzB;AACA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,qBAA9C;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,iBAAT,QAAkC,eAAlC;;AAIA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB;EAAA,OAA4B;IACvDC,IAAI,EAAE;EADiD,CAA5B;AAAA,CAAtB;AAIP;AACA;;AACA,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAS;EAAA,OAAmB,UAACC,QAAD,EAAwB;IAC/DA,QAAQ,CAACP,aAAa,EAAd,CAAR;IAEA,OAAO,IAAID,YAAJ,GACJO,MADI,GAEJE,IAFI,CAEC;MAAA,OAAMD,QAAQ,CAACL,cAAc,EAAf,CAAd;IAAA,CAFD,EAGJM,IAHI,CAGC;MAAA,OAAMD,QAAQ,CAACJ,iBAAiB,EAAlB,CAAd;IAAA,CAHD,EAIJK,IAJI,CAIC,YAAM;MACVD,QAAQ,CAACH,aAAa,EAAd,CAAR;MACA,OAAOG,QAAQ,CAACN,cAAc,EAAf,CAAf;IACD,CAPI,CAAP;EAQD,CAXqB;AAAA,CAAf"}
|
|
@@ -61,6 +61,10 @@ describe("authentication hooks", () => {
|
|
|
61
61
|
|
|
62
62
|
expect(store.getActions()).toStrictEqual([
|
|
63
63
|
{ type: "START_PROGRESS" },
|
|
64
|
+
{
|
|
65
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
66
|
+
payload: "application(/)(en)",
|
|
67
|
+
},
|
|
64
68
|
{
|
|
65
69
|
type: "MODULARUI/STATUS",
|
|
66
70
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -108,6 +112,10 @@ describe("authentication hooks", () => {
|
|
|
108
112
|
expect(store.getActions()).toStrictEqual([
|
|
109
113
|
{ type: "START_PROGRESS" },
|
|
110
114
|
{ type: "MODULARUI/RESET" },
|
|
115
|
+
{
|
|
116
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
117
|
+
payload: "application(/)(en)",
|
|
118
|
+
},
|
|
111
119
|
{
|
|
112
120
|
type: "MODULARUI/STATUS",
|
|
113
121
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -24,6 +24,7 @@ var reloadApplication = function reloadApplication() {
|
|
|
24
24
|
modelKey = "application(/)(".concat(locale, ")");
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
dispatch((0, _actions.removeModelByKey)(modelKey));
|
|
27
28
|
return dispatch((0, _actions.loadModularUI)(modelKey, new _models.Href("/", "Application"), {
|
|
28
29
|
targetModel: _models.ApplicationModel
|
|
29
30
|
}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import { loadModularUI } from "../_modularui/actions";
|
|
2
|
+
import { loadModularUI, removeModelByKey } from "../_modularui/actions";
|
|
3
3
|
import { keyByHref } from "../_modularui/selectors";
|
|
4
4
|
import { ApplicationModel, Href } from "../../models";
|
|
5
5
|
|
|
@@ -16,6 +16,8 @@ export const reloadApplication =
|
|
|
16
16
|
modelKey = `application(/)(${locale})`;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
dispatch(removeModelByKey(modelKey));
|
|
20
|
+
|
|
19
21
|
return dispatch(
|
|
20
22
|
loadModularUI(modelKey, new Href("/", "Application"), {
|
|
21
23
|
targetModel: ApplicationModel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","names":["reloadApplication","dispatch","getState","modelKey","keyByHref","locale","i18n","loadModularUI","Href","targetModel","ApplicationModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAIA;AACA;AACO,IAAMA,iBAAiB,GAC5B,SADWA,iBACX;EAAA,OAAmB,UAACC,QAAD,EAAqBC,QAArB,EAA4C;IAC7D,IAAIC,QAAQ,GAAG,IAAAC,oBAAA,EAAUF,QAAQ,EAAlB,EAAsB,GAAtB,CAAf;;IAEA,IAAI,CAACC,QAAL,EAAe;MAAA;;MACb,IAAME,MAAM,qBAAGH,QAAQ,GAAGI,IAAd,mDAAG,eAAiBD,MAAhC;MACAF,QAAQ,4BAAqBE,MAArB,MAAR;IACD;;
|
|
1
|
+
{"version":3,"file":"Application.js","names":["reloadApplication","dispatch","getState","modelKey","keyByHref","locale","i18n","removeModelByKey","loadModularUI","Href","targetModel","ApplicationModel"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport { loadModularUI, removeModelByKey } from \"../_modularui/actions\";\nimport { keyByHref } from \"../_modularui/selectors\";\nimport { ApplicationModel, Href } from \"../../models\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n let modelKey = keyByHref(getState(), \"/\");\n\n if (!modelKey) {\n const locale = getState().i18n?.locale;\n modelKey = `application(/)(${locale})`;\n }\n\n dispatch(removeModelByKey(modelKey));\n\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n })\n );\n };\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAIA;AACA;AACO,IAAMA,iBAAiB,GAC5B,SADWA,iBACX;EAAA,OAAmB,UAACC,QAAD,EAAqBC,QAArB,EAA4C;IAC7D,IAAIC,QAAQ,GAAG,IAAAC,oBAAA,EAAUF,QAAQ,EAAlB,EAAsB,GAAtB,CAAf;;IAEA,IAAI,CAACC,QAAL,EAAe;MAAA;;MACb,IAAME,MAAM,qBAAGH,QAAQ,GAAGI,IAAd,mDAAG,eAAiBD,MAAhC;MACAF,QAAQ,4BAAqBE,MAArB,MAAR;IACD;;IAEDJ,QAAQ,CAAC,IAAAM,yBAAA,EAAiBJ,QAAjB,CAAD,CAAR;IAEA,OAAOF,QAAQ,CACb,IAAAO,sBAAA,EAAcL,QAAd,EAAwB,IAAIM,YAAJ,CAAS,GAAT,EAAc,aAAd,CAAxB,EAAsD;MACpDC,WAAW,EAAEC;IADuC,CAAtD,CADa,CAAf;EAKD,CAfD;AAAA,CADK"}
|
|
@@ -21,6 +21,8 @@ var _Cache = _interopRequireDefault(require("../../utils/browser/Cache"));
|
|
|
21
21
|
|
|
22
22
|
var _actions2 = require("../_modularui/actions");
|
|
23
23
|
|
|
24
|
+
var _selectors = require("../_modularui/selectors");
|
|
25
|
+
|
|
24
26
|
var _Application = require("./Application");
|
|
25
27
|
|
|
26
28
|
var _constants = require("../../constants");
|
|
@@ -38,10 +40,12 @@ var handleUnauthorized = function handleUnauthorized(errorResponse) {
|
|
|
38
40
|
if ((0, _constants.getSetting)("PAGE_RELOAD_ON_UNAUTHORIZED_ERROR", false) && (_errorResponse$respon = errorResponse.response) !== null && _errorResponse$respon !== void 0 && _errorResponse$respon.error) {
|
|
39
41
|
window.location.reload();
|
|
40
42
|
return;
|
|
41
|
-
} // reload application when flag auth is set
|
|
43
|
+
} // reload application when flag auth is set or isLogged
|
|
44
|
+
|
|
42
45
|
|
|
46
|
+
var application = (0, _selectors.getApplication)(getState());
|
|
43
47
|
|
|
44
|
-
if (_Cache.default.getItem("auth")) {
|
|
48
|
+
if (_Cache.default.getItem("auth") || application !== null && application !== void 0 && application.isLoggedIn) {
|
|
45
49
|
dispatch((0, _Application.reloadApplication)());
|
|
46
50
|
} // set logged auth
|
|
47
51
|
|
|
@@ -10,6 +10,7 @@ import { showNotification } from "./Notification";
|
|
|
10
10
|
import Cache from "../../utils/browser/Cache";
|
|
11
11
|
|
|
12
12
|
import { removeModelByKey } from "../_modularui/actions";
|
|
13
|
+
import { getApplication } from "../_modularui/selectors";
|
|
13
14
|
import { reloadApplication } from "./Application";
|
|
14
15
|
|
|
15
16
|
import { getSetting } from "../../constants";
|
|
@@ -33,8 +34,9 @@ export const handleUnauthorized =
|
|
|
33
34
|
return;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
// reload application when flag auth is set
|
|
37
|
-
|
|
37
|
+
// reload application when flag auth is set or isLogged
|
|
38
|
+
const application = getApplication(getState());
|
|
39
|
+
if (Cache.getItem("auth") || application?.isLoggedIn) {
|
|
38
40
|
dispatch(reloadApplication());
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.js","names":["handleUnauthorized","errorResponse","dispatch","getState","connectKey","removeModelByKey","getSetting","response","error","window","location","reload","Cache","getItem","reloadApplication","logoutSuccess","removeItem","isInvalidUsername","WARNING_TIMEOUT","showNotification","NOTIFICATION_TYPES","WARNING","id","defaultMessage","message","router","pathname","LOGIN_PATH","locationFrom","state","from","replace","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set\n if (Cache.getItem(\"auth\")) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,CAAC,IAAAG,0BAAA,EAAiBJ,aAAa,CAACG,UAA/B,CAAD,CAAR;IACD;;IAED,IACE,IAAAE,qBAAA,EAAW,mCAAX,EAAgD,KAAhD,8BACAL,aAAa,CAACM,QADd,kDACA,sBAAwBC,KAF1B,EAGE;MACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;MACA;IACD,CAXqB,CAatB;;;IACA,
|
|
1
|
+
{"version":3,"file":"Authorization.js","names":["handleUnauthorized","errorResponse","dispatch","getState","connectKey","removeModelByKey","getSetting","response","error","window","location","reload","application","getApplication","Cache","getItem","isLoggedIn","reloadApplication","logoutSuccess","removeItem","isInvalidUsername","WARNING_TIMEOUT","showNotification","NOTIFICATION_TYPES","WARNING","id","defaultMessage","message","router","pathname","LOGIN_PATH","locationFrom","state","from","replace","modal","type"],"sources":["../../../src/redux/actions/Authorization.js"],"sourcesContent":["// @flow\nimport { LOGIN_PATH, NOTIFICATION_TYPES } from \"../../constants/Constants\";\n\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\n\nimport { replace } from \"../_router/actions\";\nimport { logoutSuccess } from \"./SignOut\";\nimport { showNotification } from \"./Notification\";\n\nimport Cache from \"../../utils/browser/Cache\";\n\nimport { removeModelByKey } from \"../_modularui/actions\";\nimport { getApplication } from \"../_modularui/selectors\";\nimport { reloadApplication } from \"./Application\";\n\nimport { getSetting } from \"../../constants\";\n\nimport type { ThunkAction } from \"../types\";\n\n/**\n */\nexport const handleUnauthorized =\n (errorResponse: ErrorResponse): ThunkAction =>\n (dispatch, getState) => {\n if (errorResponse.connectKey) {\n dispatch(removeModelByKey(errorResponse.connectKey));\n }\n\n if (\n getSetting(\"PAGE_RELOAD_ON_UNAUTHORIZED_ERROR\", false) &&\n errorResponse.response?.error\n ) {\n window.location.reload();\n return;\n }\n\n // reload application when flag auth is set or isLogged\n const application = getApplication(getState());\n if (Cache.getItem(\"auth\") || application?.isLoggedIn) {\n dispatch(reloadApplication());\n }\n\n // set logged auth\n dispatch(logoutSuccess());\n\n Cache.removeItem(\"auth\");\n\n if (errorResponse.isInvalidUsername) {\n const WARNING_TIMEOUT = 4000;\n dispatch(\n showNotification(\n NOTIFICATION_TYPES.WARNING,\n {\n id: errorResponse.id,\n defaultMessage: errorResponse.message,\n },\n null,\n WARNING_TIMEOUT\n )\n );\n }\n\n // add current location as from location before redirect\n const location = getState().router.location;\n if (location?.pathname !== LOGIN_PATH) {\n const locationFrom = location?.state?.from;\n return dispatch(\n replace(LOGIN_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n // cannot open login in a modal, because of previous locations that might be secure\n modal: false,\n })\n );\n }\n\n return { type: \"NO_ACTION\" };\n };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AAIA;AACA;AACO,IAAMA,kBAAkB,GAC7B,SADWA,kBACX,CAACC,aAAD;EAAA,OACA,UAACC,QAAD,EAAWC,QAAX,EAAwB;IAAA;;IACtB,IAAIF,aAAa,CAACG,UAAlB,EAA8B;MAC5BF,QAAQ,CAAC,IAAAG,0BAAA,EAAiBJ,aAAa,CAACG,UAA/B,CAAD,CAAR;IACD;;IAED,IACE,IAAAE,qBAAA,EAAW,mCAAX,EAAgD,KAAhD,8BACAL,aAAa,CAACM,QADd,kDACA,sBAAwBC,KAF1B,EAGE;MACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;MACA;IACD,CAXqB,CAatB;;;IACA,IAAMC,WAAW,GAAG,IAAAC,yBAAA,EAAeV,QAAQ,EAAvB,CAApB;;IACA,IAAIW,cAAA,CAAMC,OAAN,CAAc,MAAd,KAAyBH,WAAzB,aAAyBA,WAAzB,eAAyBA,WAAW,CAAEI,UAA1C,EAAsD;MACpDd,QAAQ,CAAC,IAAAe,8BAAA,GAAD,CAAR;IACD,CAjBqB,CAmBtB;;;IACAf,QAAQ,CAAC,IAAAgB,sBAAA,GAAD,CAAR;;IAEAJ,cAAA,CAAMK,UAAN,CAAiB,MAAjB;;IAEA,IAAIlB,aAAa,CAACmB,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAnB,QAAQ,CACN,IAAAoB,8BAAA,EACEC,6BAAA,CAAmBC,OADrB,EAEE;QACEC,EAAE,EAAExB,aAAa,CAACwB,EADpB;QAEEC,cAAc,EAAEzB,aAAa,CAAC0B;MAFhC,CAFF,EAME,IANF,EAOEN,eAPF,CADM,CAAR;IAWD,CArCqB,CAuCtB;;;IACA,IAAMX,QAAQ,GAAGP,QAAQ,GAAGyB,MAAX,CAAkBlB,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEmB,QAAV,MAAuBC,qBAA3B,EAAuC;MAAA;;MACrC,IAAMC,YAAY,GAAGrB,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEsB,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAO/B,QAAQ,CACb,IAAAgC,gBAAA,EAAQJ,qBAAR,EAAoB;QAClBG,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkB5B,QAAQ,GAAGyB,MAAX,CAAkBlB,QADpC;QAElB;QACAyB,KAAK,EAAE;MAHW,CAApB,CADa,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CAtDD;AAAA,CADK"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import Authenticate from "../../modularui/Authenticate";
|
|
3
3
|
import { startProgress, finishProgress } from "./ProgressIndicator";
|
|
4
4
|
import { resetModularUI } from "../_modularui/actions";
|
|
5
|
+
import { reloadApplication } from "./Application";
|
|
5
6
|
|
|
6
7
|
import type { Dispatch, LogoutSuccessAction, ThunkAction } from "../types";
|
|
7
|
-
import { reloadApplication } from "./Application";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Send logout success action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignOut.js","names":["logoutSuccess","type","logout","dispatch","startProgress","Authenticate","then","resetModularUI","reloadApplication","finishProgress"],"sources":["../../../src/redux/actions/SignOut.js"],"sourcesContent":["// @flow\nimport Authenticate from \"../../modularui/Authenticate\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { resetModularUI } from \"../_modularui/actions\";\
|
|
1
|
+
{"version":3,"file":"SignOut.js","names":["logoutSuccess","type","logout","dispatch","startProgress","Authenticate","then","resetModularUI","reloadApplication","finishProgress"],"sources":["../../../src/redux/actions/SignOut.js"],"sourcesContent":["// @flow\nimport Authenticate from \"../../modularui/Authenticate\";\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { resetModularUI } from \"../_modularui/actions\";\nimport { reloadApplication } from \"./Application\";\n\nimport type { Dispatch, LogoutSuccessAction, ThunkAction } from \"../types\";\n\n/**\n * Send logout success action\n */\nexport const logoutSuccess = (): LogoutSuccessAction => ({\n type: \"AUTHENTICATION_LOGOUT\",\n});\n\n/**\n */\nexport const logout = (): ThunkAction => (dispatch: Dispatch) => {\n dispatch(startProgress());\n\n return new Authenticate()\n .logout()\n .then(() => dispatch(resetModularUI()))\n .then(() => dispatch(reloadApplication()))\n .then(() => {\n dispatch(logoutSuccess());\n return dispatch(finishProgress());\n });\n};\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAIA;AACA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;EAAA,OAA4B;IACvDC,IAAI,EAAE;EADiD,CAA5B;AAAA,CAAtB;AAIP;AACA;;;;;AACO,IAAMC,MAAM,GAAG,SAATA,MAAS;EAAA,OAAmB,UAACC,QAAD,EAAwB;IAC/DA,QAAQ,CAAC,IAAAC,gCAAA,GAAD,CAAR;IAEA,OAAO,IAAIC,qBAAJ,GACJH,MADI,GAEJI,IAFI,CAEC;MAAA,OAAMH,QAAQ,CAAC,IAAAI,uBAAA,GAAD,CAAd;IAAA,CAFD,EAGJD,IAHI,CAGC;MAAA,OAAMH,QAAQ,CAAC,IAAAK,8BAAA,GAAD,CAAd;IAAA,CAHD,EAIJF,IAJI,CAIC,YAAM;MACVH,QAAQ,CAACH,aAAa,EAAd,CAAR;MACA,OAAOG,QAAQ,CAAC,IAAAM,iCAAA,GAAD,CAAf;IACD,CAPI,CAAP;EAQD,CAXqB;AAAA,CAAf"}
|
|
@@ -16,6 +16,10 @@ describe("application actions", () => {
|
|
|
16
16
|
await store.dispatch(reloadApplication());
|
|
17
17
|
|
|
18
18
|
expect(store.getActions()).toStrictEqual([
|
|
19
|
+
{
|
|
20
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
21
|
+
payload: "application(/)(en)",
|
|
22
|
+
},
|
|
19
23
|
{
|
|
20
24
|
type: "MODULARUI/STATUS",
|
|
21
25
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -39,6 +43,10 @@ describe("application actions", () => {
|
|
|
39
43
|
store.dispatch(reloadApplication());
|
|
40
44
|
|
|
41
45
|
expect(store.getActions()).toStrictEqual([
|
|
46
|
+
{
|
|
47
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
48
|
+
payload: "/",
|
|
49
|
+
},
|
|
42
50
|
{
|
|
43
51
|
type: "MODULARUI/STATUS",
|
|
44
52
|
payload: { key: "/", status: "LOADING" },
|
|
@@ -35,6 +35,10 @@ describe("authorization actions", () => {
|
|
|
35
35
|
store.dispatch(handleUnauthorized(errorResponse));
|
|
36
36
|
|
|
37
37
|
expect(store.getActions()).toStrictEqual([
|
|
38
|
+
{
|
|
39
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
40
|
+
payload: "/",
|
|
41
|
+
},
|
|
38
42
|
{
|
|
39
43
|
type: "MODULARUI/REMOVE_KEY",
|
|
40
44
|
payload: "/",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.4",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "http://support.beinformed.com",
|
|
@@ -51,19 +51,7 @@
|
|
|
51
51
|
"dist",
|
|
52
52
|
"esm",
|
|
53
53
|
"lib",
|
|
54
|
-
"codemods"
|
|
55
|
-
"builder",
|
|
56
|
-
"exceptions",
|
|
57
|
-
"hooks",
|
|
58
|
-
"i18n",
|
|
59
|
-
"models",
|
|
60
|
-
"modularui",
|
|
61
|
-
"react",
|
|
62
|
-
"react-client",
|
|
63
|
-
"react-server",
|
|
64
|
-
"react-theme",
|
|
65
|
-
"redux",
|
|
66
|
-
"utils"
|
|
54
|
+
"codemods"
|
|
67
55
|
],
|
|
68
56
|
"peerDependencies": {
|
|
69
57
|
"history": "^4.0.0",
|
|
@@ -61,6 +61,10 @@ describe("authentication hooks", () => {
|
|
|
61
61
|
|
|
62
62
|
expect(store.getActions()).toStrictEqual([
|
|
63
63
|
{ type: "START_PROGRESS" },
|
|
64
|
+
{
|
|
65
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
66
|
+
payload: "application(/)(en)",
|
|
67
|
+
},
|
|
64
68
|
{
|
|
65
69
|
type: "MODULARUI/STATUS",
|
|
66
70
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -108,6 +112,10 @@ describe("authentication hooks", () => {
|
|
|
108
112
|
expect(store.getActions()).toStrictEqual([
|
|
109
113
|
{ type: "START_PROGRESS" },
|
|
110
114
|
{ type: "MODULARUI/RESET" },
|
|
115
|
+
{
|
|
116
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
117
|
+
payload: "application(/)(en)",
|
|
118
|
+
},
|
|
111
119
|
{
|
|
112
120
|
type: "MODULARUI/STATUS",
|
|
113
121
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import { loadModularUI } from "../_modularui/actions";
|
|
2
|
+
import { loadModularUI, removeModelByKey } from "../_modularui/actions";
|
|
3
3
|
import { keyByHref } from "../_modularui/selectors";
|
|
4
4
|
import { ApplicationModel, Href } from "../../models";
|
|
5
5
|
|
|
@@ -16,6 +16,8 @@ export const reloadApplication =
|
|
|
16
16
|
modelKey = `application(/)(${locale})`;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
dispatch(removeModelByKey(modelKey));
|
|
20
|
+
|
|
19
21
|
return dispatch(
|
|
20
22
|
loadModularUI(modelKey, new Href("/", "Application"), {
|
|
21
23
|
targetModel: ApplicationModel,
|
|
@@ -10,6 +10,7 @@ import { showNotification } from "./Notification";
|
|
|
10
10
|
import Cache from "../../utils/browser/Cache";
|
|
11
11
|
|
|
12
12
|
import { removeModelByKey } from "../_modularui/actions";
|
|
13
|
+
import { getApplication } from "../_modularui/selectors";
|
|
13
14
|
import { reloadApplication } from "./Application";
|
|
14
15
|
|
|
15
16
|
import { getSetting } from "../../constants";
|
|
@@ -33,8 +34,9 @@ export const handleUnauthorized =
|
|
|
33
34
|
return;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
// reload application when flag auth is set
|
|
37
|
-
|
|
37
|
+
// reload application when flag auth is set or isLogged
|
|
38
|
+
const application = getApplication(getState());
|
|
39
|
+
if (Cache.getItem("auth") || application?.isLoggedIn) {
|
|
38
40
|
dispatch(reloadApplication());
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import Authenticate from "../../modularui/Authenticate";
|
|
3
3
|
import { startProgress, finishProgress } from "./ProgressIndicator";
|
|
4
4
|
import { resetModularUI } from "../_modularui/actions";
|
|
5
|
+
import { reloadApplication } from "./Application";
|
|
5
6
|
|
|
6
7
|
import type { Dispatch, LogoutSuccessAction, ThunkAction } from "../types";
|
|
7
|
-
import { reloadApplication } from "./Application";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Send logout success action
|
|
@@ -16,6 +16,10 @@ describe("application actions", () => {
|
|
|
16
16
|
await store.dispatch(reloadApplication());
|
|
17
17
|
|
|
18
18
|
expect(store.getActions()).toStrictEqual([
|
|
19
|
+
{
|
|
20
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
21
|
+
payload: "application(/)(en)",
|
|
22
|
+
},
|
|
19
23
|
{
|
|
20
24
|
type: "MODULARUI/STATUS",
|
|
21
25
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -39,6 +43,10 @@ describe("application actions", () => {
|
|
|
39
43
|
store.dispatch(reloadApplication());
|
|
40
44
|
|
|
41
45
|
expect(store.getActions()).toStrictEqual([
|
|
46
|
+
{
|
|
47
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
48
|
+
payload: "/",
|
|
49
|
+
},
|
|
42
50
|
{
|
|
43
51
|
type: "MODULARUI/STATUS",
|
|
44
52
|
payload: { key: "/", status: "LOADING" },
|
|
@@ -35,6 +35,10 @@ describe("authorization actions", () => {
|
|
|
35
35
|
store.dispatch(handleUnauthorized(errorResponse));
|
|
36
36
|
|
|
37
37
|
expect(store.getActions()).toStrictEqual([
|
|
38
|
+
{
|
|
39
|
+
type: "MODULARUI/REMOVE_KEY",
|
|
40
|
+
payload: "/",
|
|
41
|
+
},
|
|
38
42
|
{
|
|
39
43
|
type: "MODULARUI/REMOVE_KEY",
|
|
40
44
|
payload: "/",
|
package/builder/package.json
DELETED
package/exceptions/package.json
DELETED
package/hooks/package.json
DELETED
package/i18n/package.json
DELETED
package/models/package.json
DELETED
package/modularui/package.json
DELETED
package/react/package.json
DELETED
package/react-theme/package.json
DELETED
package/redux/package.json
DELETED