@beinformed/ui 1.65.4 → 1.65.5
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 +14 -0
- package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +3 -5
- package/esm/hooks/useList.js +7 -6
- package/esm/hooks/useList.js.flow +7 -6
- package/esm/hooks/useList.js.map +1 -1
- package/lib/hooks/useList.js +7 -6
- package/lib/hooks/useList.js.map +1 -1
- package/package.json +1 -1
- package/src/hooks/__tests__/UseModularUIModel.spec.js +3 -5
- package/src/hooks/useList.js +7 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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.65.5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.1...v1.65.5) (2026-01-05)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **hooks:** correct useEffect cleanup syntax and loosen `undefined` check in Href methods ([452cb01](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/452cb01180a852996bae753d108004e35d9f52bc))
|
|
11
|
+
* **hooks:** extend `useList` to support `CaseSearchModel` alongside `ListModel` ([b343b83](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/b343b83b19929350213e184aa77e7fb0e251b486))
|
|
12
|
+
* **hooks:** modularui basic hook, add removeOnUnmount ([137c86c](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/137c86ca5bf9b4c934b16ef4477e3d6f6fddf657))
|
|
13
|
+
* **hooks:** refactor key generation and reload handling for modular UI hooks ([11f3131](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/11f3131cadf4b79139f0ad8d8dd1357c429367f4))
|
|
14
|
+
* **list:** update list filters from filter array ([26039b7](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/26039b77b58b8172cb39514399367726e98b2d85))
|
|
15
|
+
* **login:** handle failing login attempt ([1ace402](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/1ace402589fdfe9270feec9d342452358edbac59))
|
|
16
|
+
* **sorting:** add reset functionality and improve sort value handling ([c39188d](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/c39188d96f5986301b18d2d236cfd77db8c5a101))
|
|
17
|
+
* **use-panel:** improve panel key in store ([79e55fb](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/79e55fb932db26e6a2112f182d9ff4741003565e))
|
|
18
|
+
|
|
5
19
|
## [1.65.4](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.1...v1.65.4) (2026-01-05)
|
|
6
20
|
|
|
7
21
|
|
|
@@ -135,12 +135,10 @@ describe("modularui hooks", () => {
|
|
|
135
135
|
|
|
136
136
|
// eslint-disable-next-line jest/expect-expect
|
|
137
137
|
it("useList", () => {
|
|
138
|
-
assertTargetModel(
|
|
139
|
-
() => useList("/tab/list"),
|
|
140
|
-
"list",
|
|
141
|
-
"/tab/list",
|
|
138
|
+
assertTargetModel(() => useList("/tab/list"), "list", "/tab/list", [
|
|
142
139
|
ListModel,
|
|
143
|
-
|
|
140
|
+
CaseSearchModel,
|
|
141
|
+
]);
|
|
144
142
|
});
|
|
145
143
|
|
|
146
144
|
// eslint-disable-next-line jest/expect-expect
|
package/esm/hooks/useList.js
CHANGED
|
@@ -4,22 +4,23 @@ import { HTTP_METHODS } from "../constants/Constants";
|
|
|
4
4
|
import { loadModularUI } from "../redux";
|
|
5
5
|
import DetailModel from "../models/detail/DetailModel";
|
|
6
6
|
import ListModel from "../models/list/ListModel";
|
|
7
|
+
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
7
8
|
import ListDetailModel from "../models/list/ListDetailModel";
|
|
8
9
|
import Href from "../models/href/Href";
|
|
9
10
|
import { useHistory } from "react-router";
|
|
10
11
|
/**
|
|
11
12
|
*/
|
|
12
13
|
export const useList = (href, options) => useModularUIBasic("list", href, {
|
|
13
|
-
expectedModels: ["List"],
|
|
14
|
-
targetModel: ListModel,
|
|
14
|
+
expectedModels: ["List", "CaseSearch"],
|
|
15
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
15
16
|
...options
|
|
16
17
|
});
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
*/
|
|
20
21
|
export const useListOrDetail = (href, options) => useModularUIBasic("list", href, {
|
|
21
|
-
expectedModels: ["List", "Detail"],
|
|
22
|
-
targetModel: [ListModel, DetailModel],
|
|
22
|
+
expectedModels: ["List", "CaseSearch", "Detail"],
|
|
23
|
+
targetModel: [ListModel, CaseSearchModel, DetailModel],
|
|
23
24
|
...options
|
|
24
25
|
});
|
|
25
26
|
|
|
@@ -50,7 +51,7 @@ export const useListNavigation = () => {
|
|
|
50
51
|
dispatch(loadModularUI(list.connectKey, listHref, {
|
|
51
52
|
method: HTTP_METHODS.POST,
|
|
52
53
|
data: list.formdata,
|
|
53
|
-
targetModel: ListModel
|
|
54
|
+
targetModel: [ListModel, CaseSearchModel]
|
|
54
55
|
}));
|
|
55
56
|
} else {
|
|
56
57
|
history.push({
|
|
@@ -58,7 +59,7 @@ export const useListNavigation = () => {
|
|
|
58
59
|
});
|
|
59
60
|
dispatch(loadModularUI(list.connectKey, listHref, {
|
|
60
61
|
method: HTTP_METHODS.GET,
|
|
61
|
-
targetModel: ListModel
|
|
62
|
+
targetModel: [ListModel, CaseSearchModel]
|
|
62
63
|
}));
|
|
63
64
|
}
|
|
64
65
|
};
|
|
@@ -5,6 +5,7 @@ import { HTTP_METHODS } from "../constants/Constants";
|
|
|
5
5
|
import { loadModularUI } from "../redux";
|
|
6
6
|
import DetailModel from "../models/detail/DetailModel";
|
|
7
7
|
import ListModel from "../models/list/ListModel";
|
|
8
|
+
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
8
9
|
import ListDetailModel from "../models/list/ListDetailModel";
|
|
9
10
|
import Href from "../models/href/Href";
|
|
10
11
|
|
|
@@ -22,8 +23,8 @@ export const useList = (
|
|
|
22
23
|
options?: HookOptions,
|
|
23
24
|
): ListModel | null =>
|
|
24
25
|
useModularUIBasic("list", href, {
|
|
25
|
-
expectedModels: ["List"],
|
|
26
|
-
targetModel: ListModel,
|
|
26
|
+
expectedModels: ["List", "CaseSearch"],
|
|
27
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
27
28
|
...options,
|
|
28
29
|
});
|
|
29
30
|
|
|
@@ -34,8 +35,8 @@ export const useListOrDetail = (
|
|
|
34
35
|
options?: HookOptions,
|
|
35
36
|
): ListModel | DetailModel | null =>
|
|
36
37
|
useModularUIBasic("list", href, {
|
|
37
|
-
expectedModels: ["List", "Detail"],
|
|
38
|
-
targetModel: [ListModel, DetailModel],
|
|
38
|
+
expectedModels: ["List", "CaseSearch", "Detail"],
|
|
39
|
+
targetModel: [ListModel, CaseSearchModel, DetailModel],
|
|
39
40
|
...options,
|
|
40
41
|
});
|
|
41
42
|
|
|
@@ -70,7 +71,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
70
71
|
loadModularUI(list.connectKey, listHref, {
|
|
71
72
|
method: HTTP_METHODS.POST,
|
|
72
73
|
data: list.formdata,
|
|
73
|
-
targetModel: ListModel,
|
|
74
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
74
75
|
}),
|
|
75
76
|
);
|
|
76
77
|
} else {
|
|
@@ -78,7 +79,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
78
79
|
dispatch(
|
|
79
80
|
loadModularUI(list.connectKey, listHref, {
|
|
80
81
|
method: HTTP_METHODS.GET,
|
|
81
|
-
targetModel: ListModel,
|
|
82
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
82
83
|
}),
|
|
83
84
|
);
|
|
84
85
|
}
|
package/esm/hooks/useList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useList.js","names":["useModularUIBasic","useDispatch","HTTP_METHODS","loadModularUI","DetailModel","ListModel","ListDetailModel","Href","useHistory","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","history","dispatch","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","push","search","querystring","state","formdata","connectKey","method","data","GET"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { useDispatch } from \"react-redux\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\nimport { loadModularUI } from \"../redux\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport { useHistory } from \"react-router\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\"],\n targetModel: ListModel,\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"Detail\"],\n targetModel: [ListModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = (): ListNavigationHook => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const update = (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n history.push({ search: listHref.querystring, state: list.formdata });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: ListModel,\n }),\n );\n } else {\n history.push({ search: listHref.querystring });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: ListModel,\n }),\n );\n }\n };\n\n return {\n update,\n };\n};\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,aAAa,QAAQ,UAAU;AACxC,OAAOC,WAAW,MAAM,8BAA8B;AACtD,OAAOC,SAAS,MAAM,0BAA0B;AAChD,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,OAAOC,IAAI,MAAM,qBAAqB;AAGtC,SAASC,UAAU,QAAQ,cAAc;AAMzC;AACA;AACA,OAAO,MAAMC,OAAO,GAAGA,CACrBC,IAAmB,EACnBC,OAAqB,
|
|
1
|
+
{"version":3,"file":"useList.js","names":["useModularUIBasic","useDispatch","HTTP_METHODS","loadModularUI","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","useHistory","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","history","dispatch","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","push","search","querystring","state","formdata","connectKey","method","data","GET"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { useDispatch } from \"react-redux\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\nimport { loadModularUI } from \"../redux\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport { useHistory } from \"react-router\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = (): ListNavigationHook => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const update = (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n history.push({ search: listHref.querystring, state: list.formdata });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n history.push({ search: listHref.querystring });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n };\n\n return {\n update,\n };\n};\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,aAAa,QAAQ,UAAU;AACxC,OAAOC,WAAW,MAAM,8BAA8B;AACtD,OAAOC,SAAS,MAAM,0BAA0B;AAChD,OAAOC,eAAe,MAAM,kCAAkC;AAC9D,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,OAAOC,IAAI,MAAM,qBAAqB;AAGtC,SAASC,UAAU,QAAQ,cAAc;AAMzC;AACA;AACA,OAAO,MAAMC,OAAO,GAAGA,CACrBC,IAAmB,EACnBC,OAAqB,KAErBZ,iBAAiB,CAAC,MAAM,EAAEW,IAAI,EAAE;EAC9BE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;EACtCC,WAAW,EAAE,CAACT,SAAS,EAAEC,eAAe,CAAC;EACzC,GAAGM;AACL,CAAC,CAAC;;AAEJ;AACA;AACA,OAAO,MAAMG,eAAe,GAAGA,CAC7BJ,IAAmB,EACnBC,OAAqB,KAErBZ,iBAAiB,CAAC,MAAM,EAAEW,IAAI,EAAE;EAC9BE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC;EAChDC,WAAW,EAAE,CAACT,SAAS,EAAEC,eAAe,EAAEF,WAAW,CAAC;EACtD,GAAGQ;AACL,CAAC,CAAC;;AAEJ;AACA;AACA,OAAO,MAAMI,aAAa,GAAGA,CAC3BL,IAAmB,EACnBC,OAAqB,KAErBZ,iBAAiB,CAAC,YAAY,EAAEW,IAAI,EAAE;EACpCE,cAAc,EAAE,CAAC,YAAY,CAAC;EAC9BC,WAAW,EAAEP,eAAe;EAC5BU,gBAAgB,EAAE,IAAI;EACtB,GAAGL;AACL,CAAC,CAAC;;AAEJ;AACA;AACA,OAAO,MAAMM,iBAAiB,GAAGA,CAAA,KAA0B;EACzD,MAAMC,OAAO,GAAGV,UAAU,CAAC,CAAC;EAC5B,MAAMW,QAAQ,GAAGnB,WAAW,CAAC,CAAC;EAE9B,MAAMoB,MAAM,GAAGA,CAACC,IAAe,EAAEC,SAAkB,GAAG,KAAK,KAAK;IAC9D,MAAMC,QAAQ,GAAGF,IAAI,CAACG,QAAQ;IAC9B,IAAIF,SAAS,EAAE;MACbC,QAAQ,CAACE,IAAI,GAAG,IAAI;IACtB;IAEA,IAAIJ,IAAI,CAACK,aAAa,KAAKzB,YAAY,CAAC0B,IAAI,EAAE;MAC5CT,OAAO,CAACU,IAAI,CAAC;QAAEC,MAAM,EAAEN,QAAQ,CAACO,WAAW;QAAEC,KAAK,EAAEV,IAAI,CAACW;MAAS,CAAC,CAAC;MACpEb,QAAQ,CACNjB,aAAa,CAACmB,IAAI,CAACY,UAAU,EAAEV,QAAQ,EAAE;QACvCW,MAAM,EAAEjC,YAAY,CAAC0B,IAAI;QACzBQ,IAAI,EAAEd,IAAI,CAACW,QAAQ;QACnBnB,WAAW,EAAE,CAACT,SAAS,EAAEC,eAAe;MAC1C,CAAC,CACH,CAAC;IACH,CAAC,MAAM;MACLa,OAAO,CAACU,IAAI,CAAC;QAAEC,MAAM,EAAEN,QAAQ,CAACO;MAAY,CAAC,CAAC;MAC9CX,QAAQ,CACNjB,aAAa,CAACmB,IAAI,CAACY,UAAU,EAAEV,QAAQ,EAAE;QACvCW,MAAM,EAAEjC,YAAY,CAACmC,GAAG;QACxBvB,WAAW,EAAE,CAACT,SAAS,EAAEC,eAAe;MAC1C,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,OAAO;IACLe;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
package/lib/hooks/useList.js
CHANGED
|
@@ -11,14 +11,15 @@ var _Constants = require("../constants/Constants");
|
|
|
11
11
|
var _redux = require("../redux");
|
|
12
12
|
var _DetailModel = _interopRequireDefault(require("../models/detail/DetailModel"));
|
|
13
13
|
var _ListModel = _interopRequireDefault(require("../models/list/ListModel"));
|
|
14
|
+
var _CaseSearchModel = _interopRequireDefault(require("../models/search/CaseSearchModel"));
|
|
14
15
|
var _ListDetailModel = _interopRequireDefault(require("../models/list/ListDetailModel"));
|
|
15
16
|
var _Href = _interopRequireDefault(require("../models/href/Href"));
|
|
16
17
|
var _reactRouter = require("react-router");
|
|
17
18
|
/**
|
|
18
19
|
*/
|
|
19
20
|
const useList = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("list", href, {
|
|
20
|
-
expectedModels: ["List"],
|
|
21
|
-
targetModel: _ListModel.default,
|
|
21
|
+
expectedModels: ["List", "CaseSearch"],
|
|
22
|
+
targetModel: [_ListModel.default, _CaseSearchModel.default],
|
|
22
23
|
...options
|
|
23
24
|
});
|
|
24
25
|
|
|
@@ -26,8 +27,8 @@ const useList = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("li
|
|
|
26
27
|
*/
|
|
27
28
|
exports.useList = useList;
|
|
28
29
|
const useListOrDetail = (href, options) => (0, _useModularUIBasic.useModularUIBasic)("list", href, {
|
|
29
|
-
expectedModels: ["List", "Detail"],
|
|
30
|
-
targetModel: [_ListModel.default, _DetailModel.default],
|
|
30
|
+
expectedModels: ["List", "CaseSearch", "Detail"],
|
|
31
|
+
targetModel: [_ListModel.default, _CaseSearchModel.default, _DetailModel.default],
|
|
31
32
|
...options
|
|
32
33
|
});
|
|
33
34
|
|
|
@@ -60,7 +61,7 @@ const useListNavigation = () => {
|
|
|
60
61
|
dispatch((0, _redux.loadModularUI)(list.connectKey, listHref, {
|
|
61
62
|
method: _Constants.HTTP_METHODS.POST,
|
|
62
63
|
data: list.formdata,
|
|
63
|
-
targetModel: _ListModel.default
|
|
64
|
+
targetModel: [_ListModel.default, _CaseSearchModel.default]
|
|
64
65
|
}));
|
|
65
66
|
} else {
|
|
66
67
|
history.push({
|
|
@@ -68,7 +69,7 @@ const useListNavigation = () => {
|
|
|
68
69
|
});
|
|
69
70
|
dispatch((0, _redux.loadModularUI)(list.connectKey, listHref, {
|
|
70
71
|
method: _Constants.HTTP_METHODS.GET,
|
|
71
|
-
targetModel: _ListModel.default
|
|
72
|
+
targetModel: [_ListModel.default, _CaseSearchModel.default]
|
|
72
73
|
}));
|
|
73
74
|
}
|
|
74
75
|
};
|
package/lib/hooks/useList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useList.js","names":["_useModularUIBasic","require","_reactRedux","_Constants","_redux","_DetailModel","_interopRequireDefault","_ListModel","_ListDetailModel","_Href","_reactRouter","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","history","useHistory","dispatch","useDispatch","update","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","push","search","querystring","state","formdata","loadModularUI","connectKey","method","data","GET"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { useDispatch } from \"react-redux\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\nimport { loadModularUI } from \"../redux\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport { useHistory } from \"react-router\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\"],\n targetModel: ListModel,\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"Detail\"],\n targetModel: [ListModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = (): ListNavigationHook => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const update = (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n history.push({ search: listHref.querystring, state: list.formdata });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: ListModel,\n }),\n );\n } else {\n history.push({ search: listHref.querystring });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: ListModel,\n }),\n );\n }\n };\n\n return {\n update,\n };\n};\n"],"mappings":";;;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,UAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,gBAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,
|
|
1
|
+
{"version":3,"file":"useList.js","names":["_useModularUIBasic","require","_reactRedux","_Constants","_redux","_DetailModel","_interopRequireDefault","_ListModel","_CaseSearchModel","_ListDetailModel","_Href","_reactRouter","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","CaseSearchModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","history","useHistory","dispatch","useDispatch","update","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","push","search","querystring","state","formdata","loadModularUI","connectKey","method","data","GET"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { useDispatch } from \"react-redux\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\nimport { loadModularUI } from \"../redux\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport { useHistory } from \"react-router\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = (): ListNavigationHook => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const update = (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n history.push({ search: listHref.querystring, state: list.formdata });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n history.push({ search: listHref.querystring });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n };\n\n return {\n update,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -135,12 +135,10 @@ describe("modularui hooks", () => {
|
|
|
135
135
|
|
|
136
136
|
// eslint-disable-next-line jest/expect-expect
|
|
137
137
|
it("useList", () => {
|
|
138
|
-
assertTargetModel(
|
|
139
|
-
() => useList("/tab/list"),
|
|
140
|
-
"list",
|
|
141
|
-
"/tab/list",
|
|
138
|
+
assertTargetModel(() => useList("/tab/list"), "list", "/tab/list", [
|
|
142
139
|
ListModel,
|
|
143
|
-
|
|
140
|
+
CaseSearchModel,
|
|
141
|
+
]);
|
|
144
142
|
});
|
|
145
143
|
|
|
146
144
|
// eslint-disable-next-line jest/expect-expect
|
package/src/hooks/useList.js
CHANGED
|
@@ -5,6 +5,7 @@ import { HTTP_METHODS } from "../constants/Constants";
|
|
|
5
5
|
import { loadModularUI } from "../redux";
|
|
6
6
|
import DetailModel from "../models/detail/DetailModel";
|
|
7
7
|
import ListModel from "../models/list/ListModel";
|
|
8
|
+
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
8
9
|
import ListDetailModel from "../models/list/ListDetailModel";
|
|
9
10
|
import Href from "../models/href/Href";
|
|
10
11
|
|
|
@@ -22,8 +23,8 @@ export const useList = (
|
|
|
22
23
|
options?: HookOptions,
|
|
23
24
|
): ListModel | null =>
|
|
24
25
|
useModularUIBasic("list", href, {
|
|
25
|
-
expectedModels: ["List"],
|
|
26
|
-
targetModel: ListModel,
|
|
26
|
+
expectedModels: ["List", "CaseSearch"],
|
|
27
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
27
28
|
...options,
|
|
28
29
|
});
|
|
29
30
|
|
|
@@ -34,8 +35,8 @@ export const useListOrDetail = (
|
|
|
34
35
|
options?: HookOptions,
|
|
35
36
|
): ListModel | DetailModel | null =>
|
|
36
37
|
useModularUIBasic("list", href, {
|
|
37
|
-
expectedModels: ["List", "Detail"],
|
|
38
|
-
targetModel: [ListModel, DetailModel],
|
|
38
|
+
expectedModels: ["List", "CaseSearch", "Detail"],
|
|
39
|
+
targetModel: [ListModel, CaseSearchModel, DetailModel],
|
|
39
40
|
...options,
|
|
40
41
|
});
|
|
41
42
|
|
|
@@ -70,7 +71,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
70
71
|
loadModularUI(list.connectKey, listHref, {
|
|
71
72
|
method: HTTP_METHODS.POST,
|
|
72
73
|
data: list.formdata,
|
|
73
|
-
targetModel: ListModel,
|
|
74
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
74
75
|
}),
|
|
75
76
|
);
|
|
76
77
|
} else {
|
|
@@ -78,7 +79,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
78
79
|
dispatch(
|
|
79
80
|
loadModularUI(list.connectKey, listHref, {
|
|
80
81
|
method: HTTP_METHODS.GET,
|
|
81
|
-
targetModel: ListModel,
|
|
82
|
+
targetModel: [ListModel, CaseSearchModel],
|
|
82
83
|
}),
|
|
83
84
|
);
|
|
84
85
|
}
|