@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.
Files changed (37) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/esm/redux/actions/Application.js +2 -1
  3. package/esm/redux/actions/Application.js.map +1 -1
  4. package/esm/redux/actions/Authorization.js +5 -2
  5. package/esm/redux/actions/Authorization.js.map +1 -1
  6. package/esm/redux/actions/SignOut.js +1 -1
  7. package/esm/redux/actions/SignOut.js.map +1 -1
  8. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +8 -0
  9. package/lib/redux/actions/Application.js +1 -0
  10. package/lib/redux/actions/Application.js.flow +3 -1
  11. package/lib/redux/actions/Application.js.map +1 -1
  12. package/lib/redux/actions/Authorization.js +6 -2
  13. package/lib/redux/actions/Authorization.js.flow +4 -2
  14. package/lib/redux/actions/Authorization.js.map +1 -1
  15. package/lib/redux/actions/SignOut.js.flow +1 -1
  16. package/lib/redux/actions/SignOut.js.map +1 -1
  17. package/lib/redux/actions/__tests__/Application.spec.js.flow +8 -0
  18. package/lib/redux/actions/__tests__/Authorization.spec.js.flow +4 -0
  19. package/package.json +2 -14
  20. package/src/hooks/__tests__/useAuthentication.spec.js +8 -0
  21. package/src/redux/actions/Application.js +3 -1
  22. package/src/redux/actions/Authorization.js +4 -2
  23. package/src/redux/actions/SignOut.js +1 -1
  24. package/src/redux/actions/__tests__/Application.spec.js +8 -0
  25. package/src/redux/actions/__tests__/Authorization.spec.js +4 -0
  26. package/builder/package.json +0 -8
  27. package/exceptions/package.json +0 -8
  28. package/hooks/package.json +0 -8
  29. package/i18n/package.json +0 -8
  30. package/models/package.json +0 -8
  31. package/modularui/package.json +0 -8
  32. package/react/package.json +0 -8
  33. package/react-client/package.json +0 -8
  34. package/react-server/package.json +0 -8
  35. package/react-theme/package.json +0 -8
  36. package/redux/package.json +0 -8
  37. 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,QAA8B,uBAA9B;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;;IAED,OAAOH,QAAQ,CACbL,aAAa,CAACO,QAAD,EAAW,IAAIJ,IAAJ,CAAS,GAAT,EAAc,aAAd,CAAX,EAAyC;MACpDO,WAAW,EAAER;IADuC,CAAzC,CADA,CAAf;EAKD,CAbD;AAAA,CADK"}
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
- if (Cache.getItem("auth")) {
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,CAACL,gBAAgB,CAACI,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,IAAIb,KAAK,CAACc,OAAN,CAAc,MAAd,CAAJ,EAA2B;MACzBR,QAAQ,CAACJ,iBAAiB,EAAlB,CAAR;IACD,CAhBqB,CAkBtB;;;IACAI,QAAQ,CAACR,aAAa,EAAd,CAAR;IAEAE,KAAK,CAACe,UAAN,CAAiB,MAAjB;;IAEA,IAAIV,aAAa,CAACW,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAX,QAAQ,CACNP,gBAAgB,CACdJ,kBAAkB,CAACuB,OADL,EAEd;QACEC,EAAE,EAAEd,aAAa,CAACc,EADpB;QAEEC,cAAc,EAAEf,aAAa,CAACgB;MAFhC,CAFc,EAMd,IANc,EAOdJ,eAPc,CADV,CAAR;IAWD,CApCqB,CAsCtB;;;IACA,IAAML,QAAQ,GAAGL,QAAQ,GAAGe,MAAX,CAAkBV,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEW,QAAV,MAAuB7B,UAA3B,EAAuC;MAAA;;MACrC,IAAM8B,YAAY,GAAGZ,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEa,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAOpB,QAAQ,CACbT,OAAO,CAACH,UAAD,EAAa;QAClBgC,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkBjB,QAAQ,GAAGe,MAAX,CAAkBV,QADpC;QAElB;QACAe,KAAK,EAAE;MAHW,CAAb,CADM,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CArDD;AAAA,CADK"}
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\";\n\nimport type { Dispatch, LogoutSuccessAction, ThunkAction } from \"../types\";\nimport { reloadApplication } from \"./Application\";\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;AAGA,SAASC,iBAAT,QAAkC,eAAlC;AAEA;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"}
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;;IAED,OAAOJ,QAAQ,CACb,IAAAM,sBAAA,EAAcJ,QAAd,EAAwB,IAAIK,YAAJ,CAAS,GAAT,EAAc,aAAd,CAAxB,EAAsD;MACpDC,WAAW,EAAEC;IADuC,CAAtD,CADa,CAAf;EAKD,CAbD;AAAA,CADK"}
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
- if (Cache.getItem("auth")) {
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,IAAIC,cAAA,CAAMC,OAAN,CAAc,MAAd,CAAJ,EAA2B;MACzBX,QAAQ,CAAC,IAAAY,8BAAA,GAAD,CAAR;IACD,CAhBqB,CAkBtB;;;IACAZ,QAAQ,CAAC,IAAAa,sBAAA,GAAD,CAAR;;IAEAH,cAAA,CAAMI,UAAN,CAAiB,MAAjB;;IAEA,IAAIf,aAAa,CAACgB,iBAAlB,EAAqC;MACnC,IAAMC,eAAe,GAAG,IAAxB;MACAhB,QAAQ,CACN,IAAAiB,8BAAA,EACEC,6BAAA,CAAmBC,OADrB,EAEE;QACEC,EAAE,EAAErB,aAAa,CAACqB,EADpB;QAEEC,cAAc,EAAEtB,aAAa,CAACuB;MAFhC,CAFF,EAME,IANF,EAOEN,eAPF,CADM,CAAR;IAWD,CApCqB,CAsCtB;;;IACA,IAAMR,QAAQ,GAAGP,QAAQ,GAAGsB,MAAX,CAAkBf,QAAnC;;IACA,IAAI,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEgB,QAAV,MAAuBC,qBAA3B,EAAuC;MAAA;;MACrC,IAAMC,YAAY,GAAGlB,QAAH,aAAGA,QAAH,0CAAGA,QAAQ,CAAEmB,KAAb,oDAAG,gBAAiBC,IAAtC;MACA,OAAO5B,QAAQ,CACb,IAAA6B,gBAAA,EAAQJ,qBAAR,EAAoB;QAClBG,IAAI,EAAEF,YAAY,GAAGA,YAAH,GAAkBzB,QAAQ,GAAGsB,MAAX,CAAkBf,QADpC;QAElB;QACAsB,KAAK,EAAE;MAHW,CAApB,CADa,CAAf;IAOD;;IAED,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CArDD;AAAA,CADK"}
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\";\n\nimport type { Dispatch, LogoutSuccessAction, ThunkAction } from \"../types\";\nimport { reloadApplication } from \"./Application\";\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;;AAGA;;AAEA;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"}
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",
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
- if (Cache.getItem("auth")) {
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: "/",
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.builder",
3
- "private": true,
4
- "main": "../lib/builder/index.js",
5
- "jsnext:main": "../esm/builder/index.js",
6
- "module": "../esm/builder/index.js",
7
- "esnext": "../src/builder/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.exceptions",
3
- "private": true,
4
- "main": "../lib/exceptions/index.js",
5
- "jsnext:main": "../esm/exceptions/index.js",
6
- "module": "../esm/exceptions/index.js",
7
- "esnext": "../src/exceptions/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.hooks",
3
- "private": true,
4
- "main": "../lib/hooks/index.js",
5
- "jsnext:main": "../esm/hooks/index.js",
6
- "module": "../esm/hooks/index.js",
7
- "esnext": "../src/hooks/index.js"
8
- }
package/i18n/package.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.i18n",
3
- "private": true,
4
- "main": "../lib/i18n/index.js",
5
- "jsnext:main": "../esm/i18n/index.js",
6
- "module": "../esm/i18n/index.js",
7
- "esnext": "../src/i18n/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.models",
3
- "private": true,
4
- "main": "../lib/models/index.js",
5
- "jsnext:main": "../esm/models/index.js",
6
- "module": "../esm/models/index.js",
7
- "esnext": "../src/models/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.modularui",
3
- "private": true,
4
- "main": "../lib/modularui/index.js",
5
- "jsnext:main": "../esm/modularui/index.js",
6
- "module": "../esm/modularui/index.js",
7
- "esnext": "../src/modularui/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.react",
3
- "private": true,
4
- "main": "../lib/react/index.js",
5
- "jsnext:main": "../esm/react/index.js",
6
- "module": "../esm/react/index.js",
7
- "esnext": "../src/react/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.react-client",
3
- "private": true,
4
- "main": "../lib/react-client/index.js",
5
- "jsnext:main": "../esm/react-client/index.js",
6
- "module": "../esm/react-client/index.js",
7
- "esnext": "../src/react-client/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.react-server",
3
- "private": true,
4
- "main": "../lib/react-server/index.js",
5
- "jsnext:main": "../esm/react-server/index.js",
6
- "module": "../esm/react-server/index.js",
7
- "esnext": "../src/react-server/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.react-theme",
3
- "private": true,
4
- "main": "../lib/react-theme/index.js",
5
- "jsnext:main": "../esm/react-theme/index.js",
6
- "module": "../esm/react-theme/index.js",
7
- "esnext": "../src/react-theme/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.redux",
3
- "private": true,
4
- "main": "../lib/redux/index.js",
5
- "jsnext:main": "../esm/redux/index.js",
6
- "module": "../esm/redux/index.js",
7
- "esnext": "../src/redux/index.js"
8
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "@beinformed/ui.utils",
3
- "private": true,
4
- "main": "../lib/utils/index.js",
5
- "jsnext:main": "../esm/utils/index.js",
6
- "module": "../esm/utils/index.js",
7
- "esnext": "../src/utils/index.js"
8
- }