react-hook-core 0.1.17 → 0.1.19
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/index.js +16 -0
- package/lib/route.js +1 -0
- package/lib/search.js +0 -1
- package/lib/useEdit.js +20 -12
- package/lib/useSearch.js +5 -2
- package/package.json +1 -1
- package/src/index.ts +23 -0
- package/src/route.ts +1 -0
- package/src/search.ts +0 -1
- package/src/useEdit.ts +20 -13
- package/src/useSearch.ts +5 -2
package/lib/index.js
CHANGED
|
@@ -4,6 +4,7 @@ function __export(m) {
|
|
|
4
4
|
}
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var React = require("react");
|
|
7
|
+
var react_1 = require("react");
|
|
7
8
|
__export(require("./formutil"));
|
|
8
9
|
__export(require("./util"));
|
|
9
10
|
__export(require("./core"));
|
|
@@ -20,6 +21,21 @@ __export(require("./components"));
|
|
|
20
21
|
__export(require("./search"));
|
|
21
22
|
__export(require("./reflect"));
|
|
22
23
|
__export(require("./com"));
|
|
24
|
+
exports.useCallbackState = function (initialValue) {
|
|
25
|
+
var _a = react_1.useState(initialValue), state = _a[0], _setState = _a[1];
|
|
26
|
+
var callbackQueue = react_1.useRef([]);
|
|
27
|
+
react_1.useEffect(function () {
|
|
28
|
+
callbackQueue.current.forEach(function (cb) { return cb(state); });
|
|
29
|
+
callbackQueue.current = [];
|
|
30
|
+
}, [state]);
|
|
31
|
+
var setState = function (newValue, callback) {
|
|
32
|
+
_setState(newValue);
|
|
33
|
+
if (callback && typeof callback === "function") {
|
|
34
|
+
callbackQueue.current.push(callback);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return [state, setState];
|
|
38
|
+
};
|
|
23
39
|
function checked(s, v) {
|
|
24
40
|
if (s) {
|
|
25
41
|
if (Array.isArray(s)) {
|
package/lib/route.js
CHANGED
package/lib/search.js
CHANGED
|
@@ -566,7 +566,6 @@ exports.toggleSortStyle = toggleSortStyle;
|
|
|
566
566
|
function getModel(state, modelName, searchable, fields, excluding) {
|
|
567
567
|
var obj2 = getModelFromState(state, modelName);
|
|
568
568
|
var obj = obj2 ? obj2 : {};
|
|
569
|
-
console.log("getModel optimizeFilter", searchable);
|
|
570
569
|
var obj3 = optimizeFilter(obj, searchable, fields);
|
|
571
570
|
obj3.excluding = excluding;
|
|
572
571
|
return obj3;
|
package/lib/useEdit.js
CHANGED
|
@@ -142,7 +142,7 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
142
142
|
if (form) {
|
|
143
143
|
formutil_1.readOnly(form);
|
|
144
144
|
}
|
|
145
|
-
p1.showError(msg.message, msg.title);
|
|
145
|
+
p1.showError(msg.message, msg.title, undefined, function () { return window.history.back; });
|
|
146
146
|
};
|
|
147
147
|
var handleNotFound = (p && p.handleNotFound ? p.handleNotFound : _handleNotFound);
|
|
148
148
|
var _getModel = function () {
|
|
@@ -299,10 +299,7 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
299
299
|
var unmappedErrors = u.showFormError(f, errors);
|
|
300
300
|
formutil_1.focusFirstError(f);
|
|
301
301
|
if (!result.message) {
|
|
302
|
-
if (errors && errors.length
|
|
303
|
-
result.message = errors[0].message;
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
302
|
+
if (errors && errors.length > 0) {
|
|
306
303
|
if (p1.ui && p1.ui.buildErrorMessage) {
|
|
307
304
|
result.message = p1.ui.buildErrorMessage(unmappedErrors);
|
|
308
305
|
}
|
|
@@ -426,21 +423,32 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
426
423
|
setRunning(false);
|
|
427
424
|
core_1.hideLoading(p1.loading);
|
|
428
425
|
}).catch(function (err) {
|
|
426
|
+
var _a, _b, _c;
|
|
429
427
|
var data = (err && err.response) ? err.response : err;
|
|
430
428
|
var r = p1.resource;
|
|
431
429
|
var title = r.value('error');
|
|
432
430
|
var msg = r.value('error_internal');
|
|
433
|
-
|
|
434
|
-
|
|
431
|
+
var st = core_1.createEditStatus(p ? p.status : undefined);
|
|
432
|
+
if (data && data.status === 422) {
|
|
433
|
+
fail((_a = err.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
434
|
+
var obj = (_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.value;
|
|
435
|
+
if (obj) {
|
|
436
|
+
callback ? callback(obj, showModel) : showModel(obj);
|
|
437
|
+
}
|
|
435
438
|
}
|
|
436
439
|
else {
|
|
437
|
-
if (data
|
|
438
|
-
|
|
440
|
+
if (data && data.status === 404) {
|
|
441
|
+
handleNotFound(refForm.current);
|
|
439
442
|
}
|
|
440
|
-
|
|
441
|
-
|
|
443
|
+
else {
|
|
444
|
+
if (data.status && !isNaN(data.status)) {
|
|
445
|
+
msg = core_1.messageByHttpStatus(data.status, r.value);
|
|
446
|
+
}
|
|
447
|
+
if (data && (data.status === 401 || data.status === 403)) {
|
|
448
|
+
formutil_1.readOnly(refForm.current);
|
|
449
|
+
}
|
|
450
|
+
p1.showError(msg, title);
|
|
442
451
|
}
|
|
443
|
-
p1.showError(msg, title);
|
|
444
452
|
}
|
|
445
453
|
setRunning(false);
|
|
446
454
|
core_1.hideLoading(p1.loading);
|
package/lib/useSearch.js
CHANGED
|
@@ -44,7 +44,7 @@ exports.callSearch = function (se, search3, showResults3, searchError3, lc, next
|
|
|
44
44
|
delete se['firstLimit'];
|
|
45
45
|
search3(s, limit, next, fields).then(function (sr) {
|
|
46
46
|
showResults3(s, sr, lc);
|
|
47
|
-
}).catch(function (err) { return searchError3(err); });
|
|
47
|
+
}).catch(function (err) { return err && searchError3(err); });
|
|
48
48
|
};
|
|
49
49
|
var appendListOfState = function (results, list, setState2) {
|
|
50
50
|
var arr = search_1.append(list, results);
|
|
@@ -319,7 +319,10 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
|
319
319
|
var appendList = (p && p.appendList ? p.appendList : appendListOfState);
|
|
320
320
|
var setList = (p && p.setList ? p.setList : setListOfState);
|
|
321
321
|
var _showResults = function (s, sr, lc) {
|
|
322
|
-
|
|
322
|
+
if (sr == undefined) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
var results = (sr === null || sr === void 0 ? void 0 : sr.list) || [];
|
|
323
326
|
if (results && results.length > 0) {
|
|
324
327
|
search_1.formatResults(results, component.pageIndex, component.pageSize, component.pageSize, p ? p.sequenceNo : undefined, p ? p.format : undefined, lc);
|
|
325
328
|
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
3
|
export * from './formutil';
|
|
3
4
|
export * from './util';
|
|
4
5
|
export * from './core';
|
|
@@ -16,6 +17,28 @@ export * from './search';
|
|
|
16
17
|
export * from './reflect';
|
|
17
18
|
export * from './com';
|
|
18
19
|
|
|
20
|
+
type CallBackType<T> = (updatedValue: T) => void;
|
|
21
|
+
type SetStateType<T> = T | ((prev: T) => T);
|
|
22
|
+
type RetType = <T>(initialValue: T | (() => T)) => [T, (newValue: SetStateType<T>, callback?: CallBackType<T>) => void];
|
|
23
|
+
|
|
24
|
+
export const useCallbackState: RetType = <T>(initialValue: T | (() => T)) => {
|
|
25
|
+
const [state, _setState] = useState<T>(initialValue);
|
|
26
|
+
const callbackQueue = useRef<CallBackType<T>[]>([]);
|
|
27
|
+
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
callbackQueue.current.forEach((cb) => cb(state));
|
|
30
|
+
callbackQueue.current = [];
|
|
31
|
+
}, [state]);
|
|
32
|
+
|
|
33
|
+
const setState = (newValue: SetStateType<T>, callback?: CallBackType<T>) => {
|
|
34
|
+
_setState(newValue);
|
|
35
|
+
if (callback && typeof callback === "function") {
|
|
36
|
+
callbackQueue.current.push(callback);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return [state, setState];
|
|
40
|
+
};
|
|
41
|
+
|
|
19
42
|
export function checked(s: string[]|string|undefined, v: string): boolean|undefined {
|
|
20
43
|
if (s) {
|
|
21
44
|
if (Array.isArray(s)) {
|
package/src/route.ts
CHANGED
|
@@ -51,6 +51,7 @@ function parseToModel(dest: any, src: any) {
|
|
|
51
51
|
if (typeof dest !== 'object' || typeof src !== 'object') {
|
|
52
52
|
return dest;
|
|
53
53
|
}
|
|
54
|
+
dest = convertToObject(dest)
|
|
54
55
|
for (let key in src) {
|
|
55
56
|
if (!Object.hasOwn(dest, key)) continue;
|
|
56
57
|
if (src.hasOwnProperty(key)) {
|
package/src/search.ts
CHANGED
|
@@ -583,7 +583,6 @@ export function getModel<T, S extends Filter>(state: any, modelName: string, sea
|
|
|
583
583
|
let obj2 = getModelFromState(state, modelName);
|
|
584
584
|
|
|
585
585
|
const obj: any = obj2 ? obj2 : {};
|
|
586
|
-
console.log("getModel optimizeFilter", searchable)
|
|
587
586
|
const obj3 = optimizeFilter(obj, searchable, fields);
|
|
588
587
|
obj3.excluding = excluding;
|
|
589
588
|
return obj3;
|
package/src/useEdit.ts
CHANGED
|
@@ -219,7 +219,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
219
219
|
if (form) {
|
|
220
220
|
setReadOnly(form);
|
|
221
221
|
}
|
|
222
|
-
p1.showError(msg.message, msg.title);
|
|
222
|
+
p1.showError(msg.message, msg.title, undefined, () => window.history.back);
|
|
223
223
|
};
|
|
224
224
|
const handleNotFound = (p && p.handleNotFound ? p.handleNotFound : _handleNotFound);
|
|
225
225
|
|
|
@@ -371,9 +371,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
371
371
|
const unmappedErrors = u.showFormError(f, errors);
|
|
372
372
|
focusFirstError(f);
|
|
373
373
|
if (!result.message) {
|
|
374
|
-
if (errors && errors.length
|
|
375
|
-
result.message = errors[0].message;
|
|
376
|
-
} else {
|
|
374
|
+
if (errors && errors.length > 0) {
|
|
377
375
|
if (p1.ui && p1.ui.buildErrorMessage) {
|
|
378
376
|
result.message = p1.ui.buildErrorMessage(unmappedErrors);
|
|
379
377
|
} else {
|
|
@@ -492,16 +490,25 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
492
490
|
const r = p1.resource;
|
|
493
491
|
const title = r.value('error');
|
|
494
492
|
let msg = r.value('error_internal');
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
if (data && (data.status === 401 || data.status === 403)) {
|
|
502
|
-
setReadOnly(refForm.current);
|
|
493
|
+
const st = createEditStatus(p ? p.status : undefined);
|
|
494
|
+
if (data && data.status === 422) {
|
|
495
|
+
fail(err.response?.data);
|
|
496
|
+
const obj = err.response?.data?.value;
|
|
497
|
+
if (obj) {
|
|
498
|
+
callback ? callback(obj as T, showModel) : showModel(obj as T);
|
|
503
499
|
}
|
|
504
|
-
|
|
500
|
+
} else {
|
|
501
|
+
if (data && data.status === 404) {
|
|
502
|
+
handleNotFound(refForm.current);
|
|
503
|
+
} else {
|
|
504
|
+
if (data.status && !isNaN(data.status)) {
|
|
505
|
+
msg = messageByHttpStatus(data.status, r.value);
|
|
506
|
+
}
|
|
507
|
+
if (data && (data.status === 401 || data.status === 403)) {
|
|
508
|
+
setReadOnly(refForm.current);
|
|
509
|
+
}
|
|
510
|
+
p1.showError(msg, title);
|
|
511
|
+
}
|
|
505
512
|
}
|
|
506
513
|
setRunning(false);
|
|
507
514
|
hideLoading(p1.loading);
|
package/src/useSearch.ts
CHANGED
|
@@ -44,7 +44,7 @@ export const callSearch = <T, S extends Filter>(se: S, search3: (s: S, limit?: n
|
|
|
44
44
|
delete se['firstLimit'];
|
|
45
45
|
search3(s, limit, next, fields).then(sr => {
|
|
46
46
|
showResults3(s, sr, lc);
|
|
47
|
-
}).catch(err => searchError3(err));
|
|
47
|
+
}).catch(err => err && searchError3(err));
|
|
48
48
|
};
|
|
49
49
|
const appendListOfState = <T, S extends Filter>(results: T[], list: T[]|undefined, setState2: DispatchWithCallback<Partial<SearchComponentState<T, S>>>) => {
|
|
50
50
|
const arr = append(list, results);
|
|
@@ -437,7 +437,10 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
437
437
|
const appendList = (p && p.appendList ? p.appendList : appendListOfState);
|
|
438
438
|
const setList = (p && p.setList ? p.setList : setListOfState);
|
|
439
439
|
const _showResults = (s: S, sr: SearchResult<T>, lc: Locale) => {
|
|
440
|
-
|
|
440
|
+
if (sr == undefined) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
const results = sr?.list || [];
|
|
441
444
|
if (results && results.length > 0) {
|
|
442
445
|
formatResults(results, component.pageIndex, component.pageSize, component.pageSize, p ? p.sequenceNo : undefined, p ? p.format : undefined, lc);
|
|
443
446
|
}
|