react-hook-core 0.1.4 → 0.1.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/lib/components.js +24 -66
- package/lib/core.js +7 -12
- package/lib/diff.js +2 -2
- package/lib/formutil.js +2 -2
- package/lib/index.js +13 -9
- package/lib/reflect.js +268 -0
- package/lib/search.js +579 -0
- package/lib/state.js +4 -4
- package/lib/update.js +7 -20
- package/lib/useEdit.js +43 -28
- package/lib/useSearch.js +22 -46
- package/lib/useView.js +24 -26
- package/package.json +5 -7
- package/src/components.ts +11 -54
- package/src/core.ts +54 -59
- package/src/diff.ts +1 -1
- package/src/formutil.ts +2 -2
- package/src/index.ts +20 -9
- package/src/reflect.ts +244 -0
- package/src/search.ts +600 -0
- package/src/state.ts +1 -1
- package/src/update.ts +7 -19
- package/src/useEdit.ts +50 -34
- package/src/useSearch.ts +20 -36
- package/src/useView.ts +31 -34
- package/tsconfig.json +1 -0
package/lib/useEdit.js
CHANGED
|
@@ -12,21 +12,50 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var react_1 = require("react");
|
|
15
|
-
var
|
|
15
|
+
var react_router_1 = require("react-router");
|
|
16
16
|
var core_1 = require("./core");
|
|
17
17
|
var edit_1 = require("./edit");
|
|
18
18
|
var formutil_1 = require("./formutil");
|
|
19
19
|
var merge_1 = require("./merge");
|
|
20
|
-
var
|
|
20
|
+
var reflect_1 = require("./reflect");
|
|
21
21
|
var state_1 = require("./state");
|
|
22
22
|
var update_1 = require("./update");
|
|
23
|
-
function
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
exports.useEdit = function (refForm, initialState, service, p2, p) {
|
|
24
|
+
var params = react_router_1.useParams();
|
|
25
|
+
var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p);
|
|
26
|
+
react_1.useEffect(function () {
|
|
27
|
+
if (refForm) {
|
|
28
|
+
var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
|
|
29
|
+
core_1.initForm(baseProps.refForm.current, registerEvents);
|
|
30
|
+
}
|
|
31
|
+
var n = baseProps.getModelName(refForm.current);
|
|
32
|
+
var obj = {};
|
|
33
|
+
obj[n] = baseProps.createNewModel();
|
|
34
|
+
baseProps.setState(obj);
|
|
35
|
+
var keys;
|
|
36
|
+
if (p && !p.keys && service && service.metadata) {
|
|
37
|
+
var metadata = (p.metadata ? p.metadata : service.metadata());
|
|
38
|
+
if (metadata) {
|
|
39
|
+
var meta = edit_1.build(metadata);
|
|
40
|
+
keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
|
|
41
|
+
var version = (p.version ? p.version : (meta ? meta.version : undefined));
|
|
42
|
+
p.keys = keys;
|
|
43
|
+
p.version = version;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
var id = core_1.buildId(params, keys);
|
|
47
|
+
if (p && p.initialize) {
|
|
48
|
+
p.initialize(id, baseProps.load, baseProps.setState, p.callback);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
baseProps.load(id, p ? p.callback : undefined);
|
|
52
|
+
}
|
|
53
|
+
}, []);
|
|
54
|
+
return __assign({}, baseProps);
|
|
27
55
|
};
|
|
28
56
|
exports.useEditProps = function (props, refForm, initialState, service, p2, p) {
|
|
29
|
-
var
|
|
57
|
+
var params = react_router_1.useParams();
|
|
58
|
+
var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p, props);
|
|
30
59
|
react_1.useEffect(function () {
|
|
31
60
|
if (refForm) {
|
|
32
61
|
var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
|
|
@@ -47,7 +76,7 @@ exports.useEditProps = function (props, refForm, initialState, service, p2, p) {
|
|
|
47
76
|
p.version = version;
|
|
48
77
|
}
|
|
49
78
|
}
|
|
50
|
-
var id = core_1.buildId(
|
|
79
|
+
var id = core_1.buildId(params, keys);
|
|
51
80
|
if (p && p.initialize) {
|
|
52
81
|
p.initialize(id, baseProps.load, baseProps.setState, p.callback);
|
|
53
82
|
}
|
|
@@ -63,14 +92,14 @@ exports.useEditOneProps = function (p) {
|
|
|
63
92
|
exports.useEditOne = function (p) {
|
|
64
93
|
return exports.useEdit(p.refForm, p.initialState, p.service, p, p);
|
|
65
94
|
};
|
|
66
|
-
exports.useCoreEdit = function (
|
|
95
|
+
exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
96
|
+
var navigate = react_router_1.useNavigate();
|
|
67
97
|
var addable = (p && p.patchable !== false ? true : undefined);
|
|
68
|
-
var goBack = router_1.useRouter().goBack;
|
|
69
98
|
var back = function (event) {
|
|
70
99
|
if (event) {
|
|
71
100
|
event.preventDefault();
|
|
72
101
|
}
|
|
73
|
-
|
|
102
|
+
navigate(-1);
|
|
74
103
|
};
|
|
75
104
|
var _a = react_1.useState(), running = _a[0], setRunning = _a[1];
|
|
76
105
|
var getModelName = function (f) {
|
|
@@ -80,19 +109,6 @@ exports.useCoreEdit = function (props, refForm, initialState, service, p1, p) {
|
|
|
80
109
|
return core_1.getModelName(f);
|
|
81
110
|
};
|
|
82
111
|
var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale);
|
|
83
|
-
var prepareCustomData = (p && p.prepareCustomData ? p.prepareCustomData : prepareData);
|
|
84
|
-
var updateDateState = function (name, value) {
|
|
85
|
-
var _a, _b, _c, _d, _e;
|
|
86
|
-
var modelName = getModelName(refForm.current);
|
|
87
|
-
var currentState = state[modelName];
|
|
88
|
-
if (props && props.setGlobalState) {
|
|
89
|
-
var data = props.shouldBeCustomized ? prepareCustomData((_a = {}, _a[name] = value, _a)) : (_b = {}, _b[name] = value, _b);
|
|
90
|
-
props.setGlobalState((_c = {}, _c[modelName] = __assign(__assign({}, currentState), data), _c));
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
setState((_d = {}, _d[modelName] = __assign(__assign({}, currentState), (_e = {}, _e[name] = value, _e)), _d));
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
112
|
var state = baseProps.state, setState = baseProps.setState;
|
|
97
113
|
var _b = merge_1.useMergeState({
|
|
98
114
|
newMode: false,
|
|
@@ -189,7 +205,7 @@ exports.useCoreEdit = function (props, refForm, initialState, service, p1, p) {
|
|
|
189
205
|
});
|
|
190
206
|
}
|
|
191
207
|
else {
|
|
192
|
-
var diffObj_1 =
|
|
208
|
+
var diffObj_1 = reflect_1.makeDiff(edit_1.initPropertyNullInModel(flag.originalModel, metadata), obj_1, keys, version_1);
|
|
193
209
|
var objKeys = Object.keys(diffObj_1);
|
|
194
210
|
if (objKeys.length === 0) {
|
|
195
211
|
p1.showMessage(p1.resource.value('msg_no_change'));
|
|
@@ -228,7 +244,7 @@ exports.useCoreEdit = function (props, refForm, initialState, service, p1, p) {
|
|
|
228
244
|
var model = result.value;
|
|
229
245
|
setFlag({ newMode: false });
|
|
230
246
|
if (model && flag.setBack === true) {
|
|
231
|
-
resetState(false, model,
|
|
247
|
+
resetState(false, model, reflect_1.clone(model));
|
|
232
248
|
}
|
|
233
249
|
else {
|
|
234
250
|
edit_1.handleVersion(obj, version);
|
|
@@ -347,7 +363,7 @@ exports.useCoreEdit = function (props, refForm, initialState, service, p1, p) {
|
|
|
347
363
|
handleNotFound(refForm.current);
|
|
348
364
|
}
|
|
349
365
|
else {
|
|
350
|
-
setFlag({ newMode: false, originalModel:
|
|
366
|
+
setFlag({ newMode: false, originalModel: reflect_1.clone(obj) });
|
|
351
367
|
if (callback) {
|
|
352
368
|
callback(obj, showModel);
|
|
353
369
|
}
|
|
@@ -395,7 +411,6 @@ exports.useCoreEdit = function (props, refForm, initialState, service, p1, p) {
|
|
|
395
411
|
refForm: refForm, ui: p1.ui, resource: p1.resource.resource(), flag: flag,
|
|
396
412
|
running: running,
|
|
397
413
|
setRunning: setRunning,
|
|
398
|
-
updateDateState: updateDateState,
|
|
399
414
|
showModel: showModel,
|
|
400
415
|
getModelName: getModelName,
|
|
401
416
|
resetState: resetState,
|
package/lib/useSearch.js
CHANGED
|
@@ -12,18 +12,15 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var react_1 = require("react");
|
|
15
|
-
var react_router_dom_1 = require("react-router-dom");
|
|
16
|
-
var reflectx_1 = require("reflectx");
|
|
17
|
-
var search_core_1 = require("search-core");
|
|
18
15
|
var core_1 = require("./core");
|
|
19
16
|
var merge_1 = require("./merge");
|
|
17
|
+
var reflect_1 = require("./reflect");
|
|
20
18
|
var route_1 = require("./route");
|
|
19
|
+
var search_1 = require("./search");
|
|
21
20
|
var state_1 = require("./state");
|
|
22
21
|
var update_1 = require("./update");
|
|
23
|
-
function prepareData(data) {
|
|
24
|
-
}
|
|
25
22
|
exports.callSearch = function (se, search3, showResults3, searchError3, lc, nextPageToken) {
|
|
26
|
-
var s =
|
|
23
|
+
var s = reflect_1.clone(se);
|
|
27
24
|
var page = se.page;
|
|
28
25
|
if (!page || page < 1) {
|
|
29
26
|
page = 1;
|
|
@@ -50,7 +47,7 @@ exports.callSearch = function (se, search3, showResults3, searchError3, lc, next
|
|
|
50
47
|
}).catch(function (err) { return searchError3(err); });
|
|
51
48
|
};
|
|
52
49
|
var appendListOfState = function (results, list, setState2) {
|
|
53
|
-
var arr =
|
|
50
|
+
var arr = search_1.append(list, results);
|
|
54
51
|
setState2({ list: arr });
|
|
55
52
|
};
|
|
56
53
|
var setListOfState = function (list, setState2) {
|
|
@@ -102,7 +99,7 @@ function mergeParam(p) {
|
|
|
102
99
|
}
|
|
103
100
|
}
|
|
104
101
|
exports.useSearch = function (refForm, initialState, service, p2, p) {
|
|
105
|
-
var baseProps = exports.useCoreSearch(
|
|
102
|
+
var baseProps = exports.useCoreSearch(refForm, initialState, service, p2, p);
|
|
106
103
|
react_1.useEffect(function () {
|
|
107
104
|
var load = baseProps.load, setState = baseProps.setState, component = baseProps.component;
|
|
108
105
|
if (refForm) {
|
|
@@ -114,7 +111,7 @@ exports.useSearch = function (refForm, initialState, service, p2, p) {
|
|
|
114
111
|
}
|
|
115
112
|
else {
|
|
116
113
|
var se = (p && p.createFilter ? p.createFilter() : undefined);
|
|
117
|
-
var s =
|
|
114
|
+
var s = search_1.mergeFilter(route_1.buildFromUrl(), se, component.pageSizes);
|
|
118
115
|
load(s, p2.auto);
|
|
119
116
|
}
|
|
120
117
|
}, []);
|
|
@@ -124,49 +121,30 @@ exports.useSearchOneProps = function (p) {
|
|
|
124
121
|
return exports.useSearch(p.refForm, p.initialState, p.service, p, p);
|
|
125
122
|
};
|
|
126
123
|
exports.useSearchOne = function (p) {
|
|
127
|
-
return exports.useCoreSearch(
|
|
124
|
+
return exports.useCoreSearch(p.refForm, p.initialState, p.service, p, p);
|
|
128
125
|
};
|
|
129
|
-
exports.useCoreSearch = function (
|
|
126
|
+
exports.useCoreSearch = function (refForm, initialState, service, p1, p2, props) {
|
|
130
127
|
var p = mergeParam(p2);
|
|
131
128
|
var _a = react_1.useState(), running = _a[0], setRunning = _a[1];
|
|
132
129
|
var _getModelName = function () {
|
|
133
130
|
return core_1.getName('filter', p && p.name ? p.name : undefined);
|
|
134
131
|
};
|
|
135
132
|
var getModelName = (p && p.getModelName ? p.getModelName : _getModelName);
|
|
136
|
-
var baseProps =
|
|
133
|
+
var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale, core_1.getRemoveError(p1));
|
|
137
134
|
var state = baseProps.state, setState = baseProps.setState;
|
|
138
|
-
var _b = [react_router_dom_1.useHistory(), react_router_dom_1.useRouteMatch()], history = _b[0], match = _b[1];
|
|
139
135
|
var _getCurrencyCode = function () {
|
|
140
136
|
return refForm && refForm.current ? refForm.current.getAttribute('currency-code') : null;
|
|
141
137
|
};
|
|
142
138
|
var getCurrencyCode = p && p.getCurrencyCode ? p.getCurrencyCode : _getCurrencyCode;
|
|
143
|
-
var
|
|
144
|
-
var updateDateState = function (name, value) {
|
|
145
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
146
|
-
var modelName = getModelName();
|
|
147
|
-
var currentState = state[modelName];
|
|
148
|
-
if (props && props.setGlobalState) {
|
|
149
|
-
var data = props.shouldBeCustomized ? prepareCustomData((_a = {}, _a[name] = value, _a)) : (_b = {}, _b[name] = value, _b);
|
|
150
|
-
props.setGlobalState((_c = {}, _c[modelName] = __assign(__assign({}, currentState), data), _c));
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
setState((_d = {}, _d[modelName] = __assign(__assign({}, currentState), (_e = {}, _e[name] = value, _e)), _d));
|
|
154
|
-
}
|
|
155
|
-
setState((_f = {}, _f[modelName] = __assign(__assign({}, currentState), (_g = {}, _g[name] = value, _g)), _f));
|
|
156
|
-
};
|
|
157
|
-
var _c = merge_1.useMergeState(p), component = _c[0], setComponent = _c[1];
|
|
139
|
+
var _b = merge_1.useMergeState(p), component = _b[0], setComponent = _b[1];
|
|
158
140
|
var toggleFilter = function (event) {
|
|
159
141
|
var x = !component.hideFilter;
|
|
160
142
|
core_1.handleToggle(event.target, !x);
|
|
161
143
|
setComponent({ hideFilter: x });
|
|
162
144
|
};
|
|
163
|
-
var add = function (event) {
|
|
164
|
-
event.preventDefault();
|
|
165
|
-
history.push(match.url + '/add');
|
|
166
|
-
};
|
|
167
145
|
var _getFields = function () {
|
|
168
146
|
var fields = component.fields, initFields = component.initFields;
|
|
169
|
-
var fs =
|
|
147
|
+
var fs = search_1.getFieldsFromForm(fields, initFields, refForm.current);
|
|
170
148
|
setComponent({ fields: fs, initFields: true });
|
|
171
149
|
return fs;
|
|
172
150
|
};
|
|
@@ -186,7 +164,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
186
164
|
}
|
|
187
165
|
var lc = (p1.getLocale ? p1.getLocale() : state_1.enLocale);
|
|
188
166
|
var cc = getCurrencyCode();
|
|
189
|
-
var obj3 =
|
|
167
|
+
var obj3 = search_1.getModel(state, n, se, fs, se.excluding, keys, se.list, refForm.current, core_1.getDecodeFromForm(p1), lc, cc);
|
|
190
168
|
return obj3;
|
|
191
169
|
};
|
|
192
170
|
var _setFilter = function (s) {
|
|
@@ -198,7 +176,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
198
176
|
var setFilter = p && p.setFilter ? p.setFilter : _setFilter;
|
|
199
177
|
var _load = function (s, auto) {
|
|
200
178
|
var com = Object.assign({}, component);
|
|
201
|
-
var obj2 =
|
|
179
|
+
var obj2 = search_1.initFilter(s, com);
|
|
202
180
|
setComponent(com);
|
|
203
181
|
setFilter(obj2);
|
|
204
182
|
var runSearch = doSearch;
|
|
@@ -220,7 +198,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
220
198
|
setRunning(true);
|
|
221
199
|
core_1.showLoading(p1.loading);
|
|
222
200
|
if (p && !p.ignoreUrlParam) {
|
|
223
|
-
|
|
201
|
+
search_1.addParametersIntoUrl(s, isFirstLoad);
|
|
224
202
|
}
|
|
225
203
|
var lc = p1.getLocale ? p1.getLocale() : state_1.enLocale;
|
|
226
204
|
if (typeof service === 'function') {
|
|
@@ -232,7 +210,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
232
210
|
});
|
|
233
211
|
};
|
|
234
212
|
var _validateSearch = function (se, callback) {
|
|
235
|
-
|
|
213
|
+
search_1.validate(se, callback, refForm.current, (p1.getLocale ? p1.getLocale() : undefined), core_1.getValidateForm(p1));
|
|
236
214
|
};
|
|
237
215
|
var validateSearch = p && p.validateSearch ? p.validateSearch : _validateSearch;
|
|
238
216
|
var pageSizeChanged = function (event) {
|
|
@@ -270,7 +248,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
270
248
|
event.preventDefault();
|
|
271
249
|
if (event && event.target) {
|
|
272
250
|
var target = event.target;
|
|
273
|
-
var s =
|
|
251
|
+
var s = search_1.handleSort(target, component.sortTarget, component.sortField, component.sortType);
|
|
274
252
|
setComponent({
|
|
275
253
|
sortField: s.field,
|
|
276
254
|
sortType: s.type,
|
|
@@ -305,7 +283,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
305
283
|
return;
|
|
306
284
|
}
|
|
307
285
|
setComponent({ pageIndex: 1, tmpPageIndex: 1 });
|
|
308
|
-
|
|
286
|
+
search_1.removeSortStatus(component.sortTarget);
|
|
309
287
|
setComponent({
|
|
310
288
|
sortTarget: undefined,
|
|
311
289
|
sortField: undefined,
|
|
@@ -327,7 +305,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
327
305
|
var _showResults = function (s, sr, lc) {
|
|
328
306
|
var results = sr.list;
|
|
329
307
|
if (results && results.length > 0) {
|
|
330
|
-
|
|
308
|
+
search_1.formatResults(results, component.pageIndex, component.pageSize, component.pageSize, p ? p.sequenceNo : undefined, p ? p.format : undefined, lc);
|
|
331
309
|
}
|
|
332
310
|
var am = component.appendMode;
|
|
333
311
|
var pi = (s.page && s.page >= 1 ? s.page : 1);
|
|
@@ -337,7 +315,7 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
337
315
|
if ((!s.page || s.page <= 1) && s.firstLimit && s.firstLimit > 0) {
|
|
338
316
|
limit = s.firstLimit;
|
|
339
317
|
}
|
|
340
|
-
|
|
318
|
+
search_1.handleAppend(component, sr.list, limit, sr.nextPageToken);
|
|
341
319
|
if (component.append && (s.page && s.page > 1)) {
|
|
342
320
|
appendList(results, component.list, setState);
|
|
343
321
|
}
|
|
@@ -346,11 +324,11 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
346
324
|
}
|
|
347
325
|
}
|
|
348
326
|
else {
|
|
349
|
-
|
|
327
|
+
search_1.showPaging(component, sr.list, s.limit, sr.total);
|
|
350
328
|
setList(results, setState);
|
|
351
329
|
setComponent({ tmpPageIndex: s.page });
|
|
352
330
|
if (s.limit) {
|
|
353
|
-
var m1 =
|
|
331
|
+
var m1 = search_1.buildMessage(p1.resource, s.page, s.limit, sr.list, sr.total);
|
|
354
332
|
p1.showMessage(m1);
|
|
355
333
|
}
|
|
356
334
|
}
|
|
@@ -383,10 +361,8 @@ exports.useCoreSearch = function (props, refForm, initialState, service, p1, p2)
|
|
|
383
361
|
return __assign(__assign({}, baseProps), {
|
|
384
362
|
running: running,
|
|
385
363
|
setRunning: setRunning,
|
|
386
|
-
getCurrencyCode: getCurrencyCode,
|
|
387
|
-
updateDateState: updateDateState, resource: p1.resource.resource(), setComponent: setComponent,
|
|
364
|
+
getCurrencyCode: getCurrencyCode, resource: p1.resource.resource(), setComponent: setComponent,
|
|
388
365
|
component: component, showMessage: p1.showMessage, load: load,
|
|
389
|
-
add: add,
|
|
390
366
|
search: search,
|
|
391
367
|
sort: sort,
|
|
392
368
|
changeView: changeView,
|
package/lib/useView.js
CHANGED
|
@@ -12,25 +12,42 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var react_1 = require("react");
|
|
15
|
+
var react_router_1 = require("react-router");
|
|
15
16
|
var core_1 = require("./core");
|
|
16
17
|
var formutil_1 = require("./formutil");
|
|
17
18
|
var merge_1 = require("./merge");
|
|
18
|
-
var router_1 = require("./router");
|
|
19
|
-
exports.useViewOneProps = function (p) {
|
|
20
|
-
return exports.useViewProps(p.props, p.refForm, p.initialState, p.service, p, p);
|
|
21
|
-
};
|
|
22
19
|
exports.useViewOne = function (p) {
|
|
23
|
-
return exports.
|
|
20
|
+
return exports.useCoreView(p.refForm, p.initialState, p.service, p, p);
|
|
24
21
|
};
|
|
25
22
|
exports.useView = function (refForm, initialState, service, p1, p) {
|
|
23
|
+
var baseProps = exports.useCoreView(refForm, initialState, service, p1, p);
|
|
24
|
+
var _a = merge_1.useMergeState(initialState), setState = _a[1];
|
|
25
|
+
var params = react_router_1.useParams();
|
|
26
|
+
react_1.useEffect(function () {
|
|
27
|
+
if (baseProps.refForm) {
|
|
28
|
+
core_1.initForm(baseProps.refForm.current);
|
|
29
|
+
}
|
|
30
|
+
var id = core_1.buildId(params, p ? p.keys : undefined);
|
|
31
|
+
if (id) {
|
|
32
|
+
if (p && p.initialize) {
|
|
33
|
+
p.initialize(id, baseProps.load, setState, p.callback);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
baseProps.load(id, p ? p.callback : undefined);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, []);
|
|
40
|
+
return __assign({}, baseProps);
|
|
41
|
+
};
|
|
42
|
+
exports.useCoreView = function (refForm, initialState, service, p1, p) {
|
|
26
43
|
var _a = merge_1.useMergeState(initialState), state = _a[0], setState = _a[1];
|
|
27
44
|
var _b = react_1.useState(), running = _b[0], setRunning = _b[1];
|
|
28
|
-
var
|
|
45
|
+
var navigate = react_router_1.useNavigate();
|
|
29
46
|
var back = function (event) {
|
|
30
47
|
if (event) {
|
|
31
48
|
event.preventDefault();
|
|
32
49
|
}
|
|
33
|
-
|
|
50
|
+
navigate(-1);
|
|
34
51
|
};
|
|
35
52
|
var getModelName = function (f) {
|
|
36
53
|
if (p && p.name) {
|
|
@@ -107,22 +124,3 @@ exports.useView = function (refForm, initialState, service, p1, p) {
|
|
|
107
124
|
back: back
|
|
108
125
|
};
|
|
109
126
|
};
|
|
110
|
-
exports.useViewProps = function (props, refForm, initialState, service, p1, p) {
|
|
111
|
-
var baseProps = exports.useView(refForm, initialState, service, p1, p);
|
|
112
|
-
var _a = merge_1.useMergeState(initialState), state = _a[0], setState = _a[1];
|
|
113
|
-
react_1.useEffect(function () {
|
|
114
|
-
if (baseProps.refForm) {
|
|
115
|
-
core_1.initForm(baseProps.refForm.current);
|
|
116
|
-
}
|
|
117
|
-
var id = core_1.buildId(props, p ? p.keys : undefined);
|
|
118
|
-
if (id) {
|
|
119
|
-
if (p && p.initialize) {
|
|
120
|
-
p.initialize(id, baseProps.load, setState, p.callback);
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
baseProps.load(id, p ? p.callback : undefined);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}, []);
|
|
127
|
-
return __assign({}, baseProps);
|
|
128
|
-
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-hook-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "react",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -9,13 +9,11 @@
|
|
|
9
9
|
"clean:lib": "rimraf lib"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@types/react": "^
|
|
13
|
-
"@types/react-router-dom": "^5.
|
|
12
|
+
"@types/react": "^17.0.41",
|
|
13
|
+
"@types/react-router-dom": "^5.3.3",
|
|
14
14
|
"query-string": "^6.13.1",
|
|
15
|
-
"react": "^
|
|
16
|
-
"react-router-dom": "^
|
|
17
|
-
"reflectx": "^0.0.10",
|
|
18
|
-
"search-core": "^0.1.1",
|
|
15
|
+
"react": "^17.0.2",
|
|
16
|
+
"react-router-dom": "^6.2.2",
|
|
19
17
|
"tslint": "^5.10.0",
|
|
20
18
|
"typescript": "^3.3.3333"
|
|
21
19
|
},
|
package/src/components.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {RouteComponentProps} from 'react-router';
|
|
3
|
-
import {clone, diff, makeDiff} from 'reflectx';
|
|
4
|
-
import {addParametersIntoUrl, append, buildMessage, changePage, changePageSize, formatResults, getFieldsFromForm, getModel, handleAppend, handleSortEvent, initFilter, mergeFilter as mergeFilter2, more, reset, Searchable, showPaging, validate} from 'search-core';
|
|
5
2
|
import {BaseDiffState, createDiffStatus, createEditStatus, DiffApprService, DiffParameter, DiffState, DiffStatusConfig, handleToggle, hideLoading, showLoading} from './core';
|
|
6
|
-
import {Attributes,
|
|
3
|
+
import {Attributes, EditStatusConfig, error, ErrorMessage, Filter, getCurrencyCode, getModelName as getModelName2, initForm, LoadingService, Locale, message, messageByHttpStatus, PageChange, pageSizes, removePhoneFormat, ResourceService, SearchParameter, SearchResult, SearchService, SearchState, StringMap, UIService, ViewParameter, ViewService} from './core';
|
|
7
4
|
import {formatDiffModel, getDataFields} from './diff';
|
|
8
5
|
import {build, createModel as createModel2, EditParameter, GenericService, handleStatus, handleVersion, initPropertyNullInModel, ResultInfo} from './edit';
|
|
9
6
|
import {focusFirstError, readOnly} from './formutil';
|
|
10
7
|
import {getAutoSearch, getConfirmFunc, getDiffStatusFunc, getEditStatusFunc, getErrorFunc, getLoadingFunc, getLocaleFunc, getMsgFunc, getResource, getUIService} from './input';
|
|
8
|
+
import {clone, diff, makeDiff} from './reflect';
|
|
11
9
|
import {buildFromUrl} from './route';
|
|
10
|
+
import {addParametersIntoUrl, append, buildMessage, changePage, changePageSize, formatResults, getFieldsFromForm, getModel, handleAppend, handleSortEvent, initFilter, mergeFilter as mergeFilter2, more, Pagination, reset, showPaging, Sortable, validate} from './search';
|
|
12
11
|
import {buildFlatState, buildState, enLocale, handleEvent, handleProps, localeOf} from './state';
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
interface Searchable extends Pagination, Sortable {
|
|
14
|
+
}
|
|
15
|
+
export class ViewComponent<T, ID, P, S> extends React.Component<P, S> {
|
|
15
16
|
constructor(props: P, sv: ((id: ID, ctx?: any) => Promise<T>)|ViewService<T, ID>,
|
|
16
17
|
param: ResourceService|ViewParameter,
|
|
17
18
|
showError?: (msg: string, title?: string, detail?: string, callback?: () => void) => void,
|
|
@@ -40,7 +41,6 @@ export class ViewComponent<T, ID, P extends RouteComponentProps, S> extends Reac
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
this.back = this.back.bind(this);
|
|
44
44
|
this.getModelName = this.getModelName.bind(this);
|
|
45
45
|
this.load = this.load.bind(this);
|
|
46
46
|
this.getModel = this.getModel.bind(this);
|
|
@@ -61,12 +61,6 @@ export class ViewComponent<T, ID, P extends RouteComponentProps, S> extends Reac
|
|
|
61
61
|
keys?: string[];
|
|
62
62
|
metadata?: Attributes;
|
|
63
63
|
|
|
64
|
-
back(event: any) {
|
|
65
|
-
if (event) {
|
|
66
|
-
event.preventDefault();
|
|
67
|
-
}
|
|
68
|
-
this.props.history.goBack();
|
|
69
|
-
}
|
|
70
64
|
getModelName(): string {
|
|
71
65
|
if (this.name && this.name.length > 0) {
|
|
72
66
|
return this.name;
|
|
@@ -78,13 +72,6 @@ export class ViewComponent<T, ID, P extends RouteComponentProps, S> extends Reac
|
|
|
78
72
|
return n;
|
|
79
73
|
}
|
|
80
74
|
}
|
|
81
|
-
componentDidMount() {
|
|
82
|
-
this.form = this.ref.current;
|
|
83
|
-
const id = buildId<ID>(this.props, this.keys);
|
|
84
|
-
if (id) {
|
|
85
|
-
this.load(id);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
75
|
load(_id: ID, callback?: (m: T, showF: (model: T) => void) => void) {
|
|
89
76
|
const id: any = _id;
|
|
90
77
|
if (id != null && id !== '' && this.loadData) {
|
|
@@ -619,7 +606,7 @@ export class BaseSearchComponent<T, F extends Filter, P, I extends SearchState<T
|
|
|
619
606
|
this.doSearch();
|
|
620
607
|
}
|
|
621
608
|
}
|
|
622
|
-
export class SearchComponent<T, S extends Filter, P
|
|
609
|
+
export class SearchComponent<T, S extends Filter, P, I extends SearchState<T, S>> extends BaseSearchComponent<T, S, P, I> {
|
|
623
610
|
constructor(props: P, sv: ((s: S, ctx?: any) => Promise<SearchResult<T>>) | SearchService<T, S>,
|
|
624
611
|
param: ResourceService|SearchParameter,
|
|
625
612
|
showMessage?: (msg: string, option?: string) => void,
|
|
@@ -641,7 +628,6 @@ export class SearchComponent<T, S extends Filter, P extends RouteComponentProps,
|
|
|
641
628
|
}
|
|
642
629
|
}
|
|
643
630
|
}
|
|
644
|
-
this.add = this.add.bind(this);
|
|
645
631
|
this.call = this.call.bind(this);
|
|
646
632
|
this.showError = getErrorFunc(param, showError);
|
|
647
633
|
this.componentDidMount = this.componentDidMount.bind(this);
|
|
@@ -667,11 +653,6 @@ export class SearchComponent<T, S extends Filter, P extends RouteComponentProps,
|
|
|
667
653
|
const s: any = {};
|
|
668
654
|
return s;
|
|
669
655
|
}
|
|
670
|
-
add = (event: any) => {
|
|
671
|
-
event.preventDefault();
|
|
672
|
-
const url = this.url + '/add';
|
|
673
|
-
this.props.history.push(url);
|
|
674
|
-
}
|
|
675
656
|
call(se: S) {
|
|
676
657
|
this.running = true;
|
|
677
658
|
const s = clone(se);
|
|
@@ -711,7 +692,7 @@ export class SearchComponent<T, S extends Filter, P extends RouteComponentProps,
|
|
|
711
692
|
}
|
|
712
693
|
}
|
|
713
694
|
|
|
714
|
-
export abstract class BaseEditComponent<T, P
|
|
695
|
+
export abstract class BaseEditComponent<T, P, S> extends BaseComponent<P, S> {
|
|
715
696
|
constructor(props: P,
|
|
716
697
|
protected resourceService: ResourceService,
|
|
717
698
|
protected showMessage: (msg: string) => void,
|
|
@@ -779,7 +760,6 @@ export abstract class BaseEditComponent<T, P extends RouteComponentProps, S> ext
|
|
|
779
760
|
if (event) {
|
|
780
761
|
event.preventDefault();
|
|
781
762
|
}
|
|
782
|
-
this.props.history.goBack();
|
|
783
763
|
}
|
|
784
764
|
resetState(newMod: boolean, model: T, originalModel?: T) {
|
|
785
765
|
this.newMode = newMod;
|
|
@@ -986,7 +966,7 @@ export abstract class BaseEditComponent<T, P extends RouteComponentProps, S> ext
|
|
|
986
966
|
this.showError(msg.message, msg.title);
|
|
987
967
|
}
|
|
988
968
|
}
|
|
989
|
-
export class EditComponent<T, ID, P
|
|
969
|
+
export class EditComponent<T, ID, P, S> extends BaseEditComponent<T, P, S> {
|
|
990
970
|
constructor(props: P, protected service: GenericService<T, ID, number|ResultInfo<T>>,
|
|
991
971
|
param: ResourceService|EditParameter,
|
|
992
972
|
showMessage?: (msg: string, option?: string) => void,
|
|
@@ -1018,16 +998,9 @@ export class EditComponent<T, ID, P extends RouteComponentProps, S> extends Base
|
|
|
1018
998
|
}
|
|
1019
999
|
this.load = this.load.bind(this);
|
|
1020
1000
|
this.doSave = this.doSave.bind(this);
|
|
1021
|
-
this.componentDidMount = this.componentDidMount.bind(this);
|
|
1022
1001
|
this.ref = React.createRef();
|
|
1023
1002
|
}
|
|
1024
1003
|
ref: any;
|
|
1025
|
-
componentDidMount() {
|
|
1026
|
-
const k = (this.ui ? this.ui.registerEvents : undefined);
|
|
1027
|
-
this.form = initForm(this.ref.current, k);
|
|
1028
|
-
const id = buildId<ID>(this.props, this.keys);
|
|
1029
|
-
this.load(id);
|
|
1030
|
-
}
|
|
1031
1004
|
load(_id: ID|null, callback?: (m: T, showM: (m2: T) => void) => void) {
|
|
1032
1005
|
const id: any = _id;
|
|
1033
1006
|
if (id != null && id !== '') {
|
|
@@ -1105,7 +1078,7 @@ export class EditComponent<T, ID, P extends RouteComponentProps, S> extends Base
|
|
|
1105
1078
|
}
|
|
1106
1079
|
}
|
|
1107
1080
|
|
|
1108
|
-
export class BaseDiffApprComponent<T, ID, P
|
|
1081
|
+
export class BaseDiffApprComponent<T, ID, P, S extends BaseDiffState> extends React.Component<P, S & any> {
|
|
1109
1082
|
constructor(props: P, protected keys: string[], protected resourceService: ResourceService,
|
|
1110
1083
|
protected showMessage: (msg: string, option?: string) => void,
|
|
1111
1084
|
protected showError: (m: string, title?: string, detail?: string, callback?: () => void) => void,
|
|
@@ -1118,7 +1091,6 @@ export class BaseDiffApprComponent<T, ID, P extends RouteComponentProps, S exten
|
|
|
1118
1091
|
this.resource = resourceService.resource();
|
|
1119
1092
|
this.showMessage = this.showMessage.bind(this);
|
|
1120
1093
|
this.showError = this.showError.bind(this);
|
|
1121
|
-
this.back = this.back.bind(this);
|
|
1122
1094
|
this.initModel = this.initModel.bind(this);
|
|
1123
1095
|
this.postApprove = this.postApprove.bind(this);
|
|
1124
1096
|
this.postReject = this.postReject.bind(this);
|
|
@@ -1135,13 +1107,6 @@ export class BaseDiffApprComponent<T, ID, P extends RouteComponentProps, S exten
|
|
|
1135
1107
|
running?: boolean;
|
|
1136
1108
|
resource: StringMap;
|
|
1137
1109
|
|
|
1138
|
-
back(event: any) {
|
|
1139
|
-
if (event) {
|
|
1140
|
-
event.preventDefault();
|
|
1141
|
-
}
|
|
1142
|
-
this.props.history.goBack();
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
1110
|
initModel(): T {
|
|
1146
1111
|
const x: any = {};
|
|
1147
1112
|
return x;
|
|
@@ -1224,7 +1189,7 @@ export class BaseDiffApprComponent<T, ID, P extends RouteComponentProps, S exten
|
|
|
1224
1189
|
this.showError(msg.message, msg.title);
|
|
1225
1190
|
}
|
|
1226
1191
|
}
|
|
1227
|
-
export class DiffApprComponent<T, ID, P
|
|
1192
|
+
export class DiffApprComponent<T, ID, P, S extends DiffState<T>> extends BaseDiffApprComponent<T, ID, P, S> {
|
|
1228
1193
|
constructor(props: P, protected service: DiffApprService<T, ID>,
|
|
1229
1194
|
param: ResourceService|DiffParameter,
|
|
1230
1195
|
showMessage?: (msg: string, option?: string) => void,
|
|
@@ -1244,14 +1209,6 @@ export class DiffApprComponent<T, ID, P extends RouteComponentProps, S extends D
|
|
|
1244
1209
|
}
|
|
1245
1210
|
ref: any;
|
|
1246
1211
|
|
|
1247
|
-
componentDidMount() {
|
|
1248
|
-
this.form = this.ref.current;
|
|
1249
|
-
const id = buildId<ID>(this.props, this.keys);
|
|
1250
|
-
if (id) {
|
|
1251
|
-
this.load(id);
|
|
1252
|
-
}
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
1212
|
formatFields(value: T): T {
|
|
1256
1213
|
return value;
|
|
1257
1214
|
}
|