react-hook-core 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/edit.js +0 -15
- package/lib/route.js +5 -1
- package/lib/useEdit.js +26 -29
- package/package.json +1 -1
- package/src/edit.ts +1 -2
- package/src/route.ts +5 -2
- package/src/useEdit.ts +28 -32
package/lib/edit.js
CHANGED
|
@@ -90,21 +90,6 @@ function createModel(attributes) {
|
|
|
90
90
|
return obj;
|
|
91
91
|
}
|
|
92
92
|
exports.createModel = createModel;
|
|
93
|
-
function initPropertyNullInModel(obj, m) {
|
|
94
|
-
if (!m) {
|
|
95
|
-
var x = {};
|
|
96
|
-
return x;
|
|
97
|
-
}
|
|
98
|
-
var model = createModel(m);
|
|
99
|
-
for (var _i = 0, _a = Object.keys(model); _i < _a.length; _i++) {
|
|
100
|
-
var key = _a[_i];
|
|
101
|
-
if (obj && !obj.hasOwnProperty(key)) {
|
|
102
|
-
obj[key] = model[key];
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return obj;
|
|
106
|
-
}
|
|
107
|
-
exports.initPropertyNullInModel = initPropertyNullInModel;
|
|
108
93
|
function handleVersion(obj, version) {
|
|
109
94
|
if (obj && version && version.length > 0) {
|
|
110
95
|
var v = obj[version];
|
package/lib/route.js
CHANGED
|
@@ -50,7 +50,6 @@ function parseToModel(dest, src) {
|
|
|
50
50
|
if (typeof dest !== 'object' || typeof src !== 'object') {
|
|
51
51
|
return dest;
|
|
52
52
|
}
|
|
53
|
-
dest = convertToObject(dest);
|
|
54
53
|
for (var key in src) {
|
|
55
54
|
if (!Object.hasOwn(dest, key))
|
|
56
55
|
continue;
|
|
@@ -77,6 +76,11 @@ function parseToModel(dest, src) {
|
|
|
77
76
|
dest[key] = parseInt(dest[key], 10);
|
|
78
77
|
}
|
|
79
78
|
}
|
|
79
|
+
else if (typeof src[key] === 'string') {
|
|
80
|
+
if (dest[key]) {
|
|
81
|
+
dest[key] = dest[key].toString();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
return dest;
|
package/lib/useEdit.js
CHANGED
|
@@ -151,25 +151,22 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
151
151
|
if (event) {
|
|
152
152
|
event.preventDefault();
|
|
153
153
|
}
|
|
154
|
-
|
|
155
|
-
var metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
|
|
156
|
-
var keys;
|
|
157
|
-
var version;
|
|
158
|
-
if (p && metadata && (!p.keys || !p.version)) {
|
|
159
|
-
var meta = edit_1.build(metadata);
|
|
160
|
-
keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
|
|
161
|
-
version = (p.version ? p.version : (meta ? meta.version : undefined));
|
|
162
|
-
}
|
|
163
|
-
var diffObj = reflect_1.makeDiff(edit_1.initPropertyNullInModel(flag.originalModel, metadata), obj, keys, version);
|
|
164
|
-
var objKeys = Object.keys(diffObj);
|
|
165
|
-
if (objKeys.length === 0) {
|
|
154
|
+
if (flag.newMode === true) {
|
|
166
155
|
navigate(-1);
|
|
167
156
|
}
|
|
168
157
|
else {
|
|
169
|
-
var
|
|
170
|
-
|
|
158
|
+
var obj = getModel();
|
|
159
|
+
var diffObj = reflect_1.makeDiff(flag.originalModel, obj);
|
|
160
|
+
var objKeys = Object.keys(diffObj);
|
|
161
|
+
if (objKeys.length === 0) {
|
|
171
162
|
navigate(-1);
|
|
172
|
-
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
var msg = core_1.message(p1.resource.value, 'msg_confirm_back', 'confirm', 'yes', 'no');
|
|
166
|
+
p1.confirm(msg.message, msg.title, function () {
|
|
167
|
+
navigate(-1);
|
|
168
|
+
}, msg.no, msg.yes);
|
|
169
|
+
}
|
|
173
170
|
}
|
|
174
171
|
};
|
|
175
172
|
var _createModel = function () {
|
|
@@ -196,15 +193,15 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
196
193
|
}
|
|
197
194
|
};
|
|
198
195
|
var _onSave = function (isBack) {
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
196
|
+
if (p && p.readOnly) {
|
|
197
|
+
if (flag.newMode === true) {
|
|
198
|
+
var m = core_1.message(p1.resource.value, 'error_permission_add', 'error_permission');
|
|
199
|
+
p1.showError(m.message, m.title);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
var msg = core_1.message(p1.resource.value, 'error_permission_edit', 'error_permission');
|
|
203
|
+
p1.showError(msg.message, msg.title);
|
|
204
|
+
}
|
|
208
205
|
}
|
|
209
206
|
else {
|
|
210
207
|
if (running === true) {
|
|
@@ -228,7 +225,7 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
228
225
|
});
|
|
229
226
|
}
|
|
230
227
|
else {
|
|
231
|
-
var diffObj_1 = reflect_1.makeDiff(
|
|
228
|
+
var diffObj_1 = reflect_1.makeDiff(flag.originalModel, obj_1, keys, version_1);
|
|
232
229
|
var objKeys = Object.keys(diffObj_1);
|
|
233
230
|
if (objKeys.length === 0) {
|
|
234
231
|
p1.showMessage(p1.resource.value('msg_no_change'));
|
|
@@ -382,16 +379,16 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
382
379
|
var patchable = (p ? p.patchable : true);
|
|
383
380
|
if (flag.newMode === false) {
|
|
384
381
|
if (service.patch && patchable !== false && body && Object.keys(body).length > 0) {
|
|
385
|
-
service.patch(body).then(function (
|
|
386
|
-
postSave(
|
|
382
|
+
service.patch(body).then(function (res) {
|
|
383
|
+
postSave(res, obj, version, true, isBackO);
|
|
387
384
|
}).catch(handleError);
|
|
388
385
|
}
|
|
389
386
|
else {
|
|
390
|
-
service.update(obj).then(function (
|
|
387
|
+
service.update(obj).then(function (res) { return postSave(res, obj, version, false, isBackO); }).catch(handleError);
|
|
391
388
|
}
|
|
392
389
|
}
|
|
393
390
|
else {
|
|
394
|
-
service.insert(obj).then(function (
|
|
391
|
+
service.insert(obj).then(function (res) { return postSave(res, obj, version, false, isBackO); }).catch(handleError);
|
|
395
392
|
}
|
|
396
393
|
};
|
|
397
394
|
var doSave = (p && p.doSave ? p.doSave : _doSave);
|
package/package.json
CHANGED
package/src/edit.ts
CHANGED
|
@@ -116,7 +116,7 @@ export function createModel<T>(attributes?: Attributes): T {
|
|
|
116
116
|
}
|
|
117
117
|
return obj;
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
/*
|
|
120
120
|
export function initPropertyNullInModel<T>(obj: T, m?: Attributes): T {
|
|
121
121
|
if (!m) {
|
|
122
122
|
const x: any = {};
|
|
@@ -130,7 +130,6 @@ export function initPropertyNullInModel<T>(obj: T, m?: Attributes): T {
|
|
|
130
130
|
}
|
|
131
131
|
return obj;
|
|
132
132
|
}
|
|
133
|
-
/*
|
|
134
133
|
export function handleStatus(x: number|string, st: EditStatusConfig, gv: (k: string, p?: any) => string, se: (m: string, title?: string, detail?: string, callback?: () => void) => void): void {
|
|
135
134
|
const title = gv('error');
|
|
136
135
|
if (x === st.version_error) {
|
package/src/route.ts
CHANGED
|
@@ -51,7 +51,6 @@ 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)
|
|
55
54
|
for (let key in src) {
|
|
56
55
|
if (!Object.hasOwn(dest, key)) continue;
|
|
57
56
|
if (src.hasOwnProperty(key)) {
|
|
@@ -69,9 +68,13 @@ function parseToModel(dest: any, src: any) {
|
|
|
69
68
|
} else if (typeof src[key] === 'number') {
|
|
70
69
|
if ( typeof dest[key] === 'string' && dest[key].indexOf(".") !== -1){
|
|
71
70
|
dest[key] = parseFloat(dest[key]);
|
|
72
|
-
}else{
|
|
71
|
+
} else{
|
|
73
72
|
dest[key] = parseInt(dest[key], 10);
|
|
74
73
|
}
|
|
74
|
+
} else if (typeof src[key] === 'string') {
|
|
75
|
+
if (dest[key]) {
|
|
76
|
+
dest[key] = dest[key].toString();
|
|
77
|
+
}
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
}
|
package/src/useEdit.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {useEffect, useState} from 'react';
|
|
2
2
|
import {useNavigate, useParams} from 'react-router';
|
|
3
3
|
import {Attributes, buildId, ErrorMessage, getModelName as getModelName2, hideLoading, initForm, LoadingService, Locale, message, messageByHttpStatus, ResourceService, showLoading, UIService} from './core';
|
|
4
|
-
import {build, createModel as createModel2, EditParameter, GenericService, handleVersion
|
|
4
|
+
import {build, createModel as createModel2, EditParameter, GenericService, handleVersion} from './edit';
|
|
5
5
|
import {focusFirstError, setReadOnly} from './formutil';
|
|
6
6
|
import {DispatchWithCallback, useMergeState} from './merge';
|
|
7
7
|
import {clone, makeDiff} from './reflect';
|
|
@@ -231,24 +231,20 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
231
231
|
if (event) {
|
|
232
232
|
event.preventDefault();
|
|
233
233
|
}
|
|
234
|
-
|
|
235
|
-
const metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
|
|
236
|
-
let keys: string[]|undefined;
|
|
237
|
-
let version: string|undefined;
|
|
238
|
-
if (p && metadata && (!p.keys || !p.version)) {
|
|
239
|
-
const meta = build(metadata);
|
|
240
|
-
keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
|
|
241
|
-
version = (p.version ? p.version : (meta ? meta.version : undefined));
|
|
242
|
-
}
|
|
243
|
-
const diffObj = makeDiff(initPropertyNullInModel(flag.originalModel, metadata), obj, keys, version);
|
|
244
|
-
const objKeys = Object.keys(diffObj);
|
|
245
|
-
if (objKeys.length === 0) {
|
|
234
|
+
if (flag.newMode === true) {
|
|
246
235
|
navigate(-1);
|
|
247
236
|
} else {
|
|
248
|
-
const
|
|
249
|
-
|
|
237
|
+
const obj = getModel();
|
|
238
|
+
const diffObj = makeDiff(flag.originalModel, obj);
|
|
239
|
+
const objKeys = Object.keys(diffObj);
|
|
240
|
+
if (objKeys.length === 0) {
|
|
250
241
|
navigate(-1);
|
|
251
|
-
}
|
|
242
|
+
} else {
|
|
243
|
+
const msg = message(p1.resource.value, 'msg_confirm_back', 'confirm', 'yes', 'no');
|
|
244
|
+
p1.confirm(msg.message, msg.title, () => {
|
|
245
|
+
navigate(-1);
|
|
246
|
+
}, msg.no, msg.yes);
|
|
247
|
+
}
|
|
252
248
|
}
|
|
253
249
|
};
|
|
254
250
|
const _createModel = (): T => {
|
|
@@ -276,16 +272,16 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
276
272
|
};
|
|
277
273
|
|
|
278
274
|
const _onSave = (isBack?: boolean) => {
|
|
279
|
-
if (
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
275
|
+
if (p && p.readOnly) {
|
|
276
|
+
if (flag.newMode === true) {
|
|
277
|
+
const m = message(p1.resource.value, 'error_permission_add', 'error_permission');
|
|
278
|
+
p1.showError(m.message, m.title);
|
|
279
|
+
} else {
|
|
280
|
+
const msg = message(p1.resource.value, 'error_permission_edit', 'error_permission');
|
|
281
|
+
p1.showError(msg.message, msg.title);
|
|
282
|
+
}
|
|
287
283
|
} else {
|
|
288
|
-
|
|
284
|
+
if (running === true) {
|
|
289
285
|
return;
|
|
290
286
|
}
|
|
291
287
|
const obj = getModel();
|
|
@@ -305,7 +301,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
305
301
|
}, msg.no, msg.yes);
|
|
306
302
|
});
|
|
307
303
|
} else {
|
|
308
|
-
const diffObj = makeDiff(
|
|
304
|
+
const diffObj = makeDiff(flag.originalModel, obj, keys, version);
|
|
309
305
|
const objKeys = Object.keys(diffObj);
|
|
310
306
|
if (objKeys.length === 0) {
|
|
311
307
|
p1.showMessage(p1.resource.value('msg_no_change'));
|
|
@@ -453,14 +449,14 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
453
449
|
const patchable = (p ? p.patchable : true);
|
|
454
450
|
if (flag.newMode === false) {
|
|
455
451
|
if (service.patch && patchable !== false && body && Object.keys(body).length > 0) {
|
|
456
|
-
service.patch(body).then(
|
|
457
|
-
postSave(
|
|
452
|
+
service.patch(body).then((res: number|T|ErrorMessage[]) => {
|
|
453
|
+
postSave(res, obj, version, true, isBackO);
|
|
458
454
|
}).catch(handleError);
|
|
459
455
|
} else {
|
|
460
|
-
service.update(obj).then(
|
|
456
|
+
service.update(obj).then((res: number|T|ErrorMessage[]) => postSave(res, obj, version, false, isBackO)).catch(handleError);
|
|
461
457
|
}
|
|
462
458
|
} else {
|
|
463
|
-
service.insert(obj).then(
|
|
459
|
+
service.insert(obj).then((res: number|T|ErrorMessage[]) => postSave(res, obj, version, false, isBackO)).catch(handleError);
|
|
464
460
|
}
|
|
465
461
|
};
|
|
466
462
|
|
|
@@ -471,7 +467,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
471
467
|
if (id != null && id !== '') {
|
|
472
468
|
setRunning(true);
|
|
473
469
|
showLoading(p1.loading);
|
|
474
|
-
service.load(id).then(obj => {
|
|
470
|
+
service.load(id).then((obj: T|null) => {
|
|
475
471
|
if (!obj) {
|
|
476
472
|
handleNotFound(refForm.current);
|
|
477
473
|
} else {
|
|
@@ -484,7 +480,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
484
480
|
}
|
|
485
481
|
setRunning(false);
|
|
486
482
|
hideLoading(p1.loading);
|
|
487
|
-
}).catch(err => {
|
|
483
|
+
}).catch((err: any) => {
|
|
488
484
|
const data = (err && err.response) ? err.response : err;
|
|
489
485
|
const r = p1.resource;
|
|
490
486
|
const title = r.value('error');
|