react-hook-core 0.5.0 → 0.5.1

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/useEdit.js DELETED
@@ -1,582 +0,0 @@
1
- "use strict"
2
- var __assign =
3
- (this && this.__assign) ||
4
- function () {
5
- __assign =
6
- Object.assign ||
7
- function (t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i]
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]
11
- }
12
- return t
13
- }
14
- return __assign.apply(this, arguments)
15
- }
16
- Object.defineProperty(exports, "__esModule", { value: true })
17
- var react_1 = require("react")
18
- var react_router_1 = require("react-router")
19
- var common_1 = require("./common")
20
- var core_1 = require("./core")
21
- var edit_1 = require("./edit")
22
- var formutil_1 = require("./formutil")
23
- var reflect_1 = require("./reflect")
24
- var state_1 = require("./state")
25
- var update_1 = require("./update")
26
- function buildKeys(attributes) {
27
- if (!attributes) {
28
- return []
29
- }
30
- var ks = Object.keys(attributes)
31
- var ps = []
32
- for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
33
- var k = ks_1[_i]
34
- var attr = attributes[k]
35
- if (attr.key === true) {
36
- ps.push(k)
37
- }
38
- }
39
- return ps
40
- }
41
- exports.buildKeys = buildKeys
42
- function buildId(p, keys) {
43
- if (!keys || keys.length === 0 || keys.length === 1) {
44
- if (keys && keys.length === 1) {
45
- if (p[keys[0]]) {
46
- return p[keys[0]]
47
- }
48
- }
49
- return p["id"]
50
- }
51
- var id = {}
52
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
53
- var key = keys_1[_i]
54
- var v = p[key]
55
- if (!v) {
56
- v = p[key]
57
- if (!v) {
58
- return null
59
- }
60
- }
61
- id[key] = v
62
- }
63
- return id
64
- }
65
- exports.buildId = buildId
66
- function build(attributes, name) {
67
- if (!attributes) {
68
- return undefined
69
- }
70
- if (core_1.resources.cache && name && name.length > 0) {
71
- var meta = core_1.resources._cache[name]
72
- if (!meta) {
73
- meta = buildMetaModel(attributes)
74
- core_1.resources._cache[name] = meta
75
- }
76
- return meta
77
- } else {
78
- return buildMetaModel(attributes)
79
- }
80
- }
81
- exports.build = build
82
- function buildMetaModel(attributes) {
83
- if (!attributes) {
84
- return {}
85
- }
86
- var md = {}
87
- var pks = new Array()
88
- var keys = Object.keys(attributes)
89
- for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
90
- var key = keys_2[_i]
91
- var attr = attributes[key]
92
- if (attr) {
93
- if (attr.version) {
94
- md.version = key
95
- }
96
- if (attr.key === true) {
97
- pks.push(key)
98
- }
99
- }
100
- }
101
- md.keys = pks
102
- return md
103
- }
104
- function handleVersion(obj, version) {
105
- if (obj && version && version.length > 0) {
106
- var v = obj[version]
107
- if (v && typeof v === "number") {
108
- obj[version] = v + 1
109
- } else {
110
- obj[version] = 1
111
- }
112
- }
113
- }
114
- exports.handleVersion = handleVersion
115
- exports.useEdit = function (refForm, initialState, service, resource, p2, p) {
116
- var params = react_router_1.useParams()
117
- var baseProps = exports.useCoreEdit(refForm, initialState, service, resource, p2, p)
118
- react_1.useEffect(function () {
119
- if (refForm) {
120
- var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
121
- common_1.initForm(baseProps.refForm.current, registerEvents)
122
- }
123
- var n = baseProps.getModelName(refForm.current)
124
- var obj = {}
125
- obj[n] = baseProps.createModel()
126
- baseProps.setState(obj)
127
- var keys
128
- if (p && !p.keys && service && service.metadata) {
129
- var metadata = p.metadata ? p.metadata : service.metadata()
130
- if (metadata) {
131
- var meta = build(metadata)
132
- keys = p.keys ? p.keys : meta ? meta.keys : undefined
133
- var version = p.version ? p.version : meta ? meta.version : undefined
134
- p.keys = keys
135
- p.version = version
136
- }
137
- }
138
- var id = buildId(params, keys)
139
- if (p && p.initialize) {
140
- p.initialize(id, baseProps.load, baseProps.setState, p.callback)
141
- } else {
142
- try {
143
- baseProps.load(id, p ? p.callback : undefined)
144
- } catch (error) {
145
- p2.showError(error)
146
- common_1.hideLoading(p2.loading)
147
- }
148
- }
149
- }, [])
150
- return __assign({}, baseProps)
151
- }
152
- exports.useEditProps = function (props, refForm, initialState, service, resource, p2, p) {
153
- var params = react_router_1.useParams()
154
- var baseProps = exports.useCoreEdit(refForm, initialState, service, resource, p2, p, props)
155
- react_1.useEffect(function () {
156
- if (refForm) {
157
- var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
158
- common_1.initForm(baseProps.refForm.current, registerEvents)
159
- }
160
- var n = baseProps.getModelName(refForm.current)
161
- var obj = {}
162
- obj[n] = baseProps.createModel()
163
- baseProps.setState(obj)
164
- var keys
165
- if (p && !p.keys && service && service.metadata) {
166
- var metadata = p.metadata ? p.metadata : service.metadata()
167
- if (metadata) {
168
- var meta = build(metadata)
169
- keys = p.keys ? p.keys : meta ? meta.keys : undefined
170
- var version = p.version ? p.version : meta ? meta.version : undefined
171
- p.keys = keys
172
- p.version = version
173
- }
174
- }
175
- var id = buildId(params, keys)
176
- if (p && p.initialize) {
177
- p.initialize(id, baseProps.load, baseProps.setState, p.callback)
178
- } else {
179
- baseProps.load(id, p ? p.callback : undefined)
180
- }
181
- }, [])
182
- return __assign({}, baseProps)
183
- }
184
- exports.useEditOneProps = function (resource, p) {
185
- return exports.useEditProps(p.props, p.refForm, p.initialState, p.service, resource, p, p)
186
- }
187
- exports.useEditOne = function (resource, p) {
188
- return exports.useEdit(p.refForm, p.initialState, p.service, resource, p, p)
189
- }
190
- exports.useCoreEdit = function (refForm, initialState, service, resource, p1, p, props) {
191
- var navigate = react_router_1.useNavigate()
192
- var _a = react_1.useState(),
193
- running = _a[0],
194
- setRunning = _a[1]
195
- var getModelName = function (f) {
196
- if (p && p.name && p.name.length > 0) {
197
- return p.name
198
- }
199
- return update_1.getModelName(f)
200
- }
201
- var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale)
202
- var state = baseProps.state,
203
- setState = baseProps.setState
204
- var _b = update_1.useMergeState({
205
- newMode: false,
206
- setBack: false,
207
- readOnly: p ? p.readOnly : undefined,
208
- originalModel: undefined,
209
- }),
210
- flag = _b[0],
211
- setFlag = _b[1]
212
- var showModel = function (model) {
213
- var n = getModelName(refForm.current)
214
- var objSet = {}
215
- objSet[n] = model
216
- setState(objSet)
217
- if (p && p.readOnly) {
218
- var f = refForm.current
219
- formutil_1.setReadOnly(f)
220
- }
221
- }
222
- var resetState = function (newMode, model, originalModel) {
223
- setFlag({ newMode: newMode, originalModel: originalModel })
224
- showModel(model)
225
- }
226
- var _handleNotFound = function (form) {
227
- if (form) {
228
- formutil_1.setReadOnly(form)
229
- }
230
- p1.showError(
231
- resource.error_404,
232
- function () {
233
- return window.history.back
234
- },
235
- resource.error,
236
- )
237
- }
238
- var handleNotFound = p && p.handleNotFound ? p.handleNotFound : _handleNotFound
239
- var _getModel = function () {
240
- var n = getModelName(refForm.current)
241
- if (props) {
242
- return props[n] || state[n]
243
- } else {
244
- return state[n]
245
- }
246
- }
247
- var getModel = p && p.getModel ? p.getModel : _getModel
248
- var back = function (event) {
249
- if (event) {
250
- event.preventDefault()
251
- }
252
- if (flag.newMode === true) {
253
- navigate(-1)
254
- } else {
255
- var obj = getModel()
256
- var diffObj = reflect_1.makeDiff(flag.originalModel, obj)
257
- var objKeys = Object.keys(diffObj)
258
- if (objKeys.length === 0) {
259
- navigate(-1)
260
- } else {
261
- p1.confirm(
262
- resource.msg_confirm_back,
263
- function () {
264
- navigate(-1)
265
- },
266
- resource.confirm,
267
- resource.no,
268
- resource.yes,
269
- )
270
- }
271
- }
272
- }
273
- var _createModel = function () {
274
- var metadata = p && p.metadata ? p.metadata : service.metadata ? service.metadata() : undefined
275
- if (metadata) {
276
- var obj = edit_1.createModel(metadata)
277
- return obj
278
- } else {
279
- var obj = {}
280
- return obj
281
- }
282
- }
283
- var createModel = p && p.createModel ? p.createModel : _createModel
284
- var create = function (event) {
285
- event.preventDefault()
286
- var obj = createModel()
287
- resetState(true, obj, undefined)
288
- var u = p1.ui
289
- if (u) {
290
- setTimeout(function () {
291
- u.removeFormError(refForm.current)
292
- }, 100)
293
- }
294
- }
295
- var _onSave = function (isBack) {
296
- if (p && p.readOnly) {
297
- if (flag.newMode === true) {
298
- p1.showError(resource.error_permission_add, undefined, resource.error_permission)
299
- } else {
300
- p1.showError(resource.error_permission_edit, undefined, resource.error_permission)
301
- }
302
- } else {
303
- if (running === true) {
304
- return
305
- }
306
- var obj_1 = getModel()
307
- var metadata = p && p.metadata ? p.metadata : service.metadata ? service.metadata() : undefined
308
- var keys = void 0
309
- var version_1
310
- if (p && metadata && (!p.keys || !p.version)) {
311
- var meta = build(metadata)
312
- keys = p.keys ? p.keys : meta ? meta.keys : undefined
313
- version_1 = p.version ? p.version : meta ? meta.version : undefined
314
- }
315
- if (flag.newMode) {
316
- validate(obj_1, function () {
317
- p1.confirm(
318
- resource.msg_confirm_save,
319
- function () {
320
- doSave(obj_1, undefined, version_1, isBack)
321
- },
322
- resource.confirm,
323
- resource.no,
324
- resource.yes,
325
- )
326
- })
327
- } else {
328
- var diffObj_1 = reflect_1.makeDiff(flag.originalModel, obj_1, keys, version_1)
329
- var objKeys = Object.keys(diffObj_1)
330
- if (objKeys.length === 0) {
331
- p1.showMessage(resource.msg_no_change)
332
- } else {
333
- validate(obj_1, function () {
334
- p1.confirm(
335
- resource.msg_confirm_save,
336
- function () {
337
- doSave(obj_1, diffObj_1, version_1, isBack)
338
- },
339
- resource.confirm,
340
- resource.no,
341
- resource.yes,
342
- )
343
- })
344
- }
345
- }
346
- }
347
- }
348
- var onSave = p && p.onSave ? p.onSave : _onSave
349
- var save = function (event) {
350
- event.preventDefault()
351
- event.persist()
352
- onSave()
353
- }
354
- var _validate = function (obj, callback) {
355
- if (p1.ui) {
356
- var valid = p1.ui.validateForm(refForm.current, state_1.localeOf(undefined, p1.getLocale))
357
- if (valid) {
358
- callback(obj)
359
- }
360
- } else {
361
- callback(obj)
362
- }
363
- }
364
- var validate = p && p.validate ? p.validate : _validate
365
- var _succeed = function (msg, origin, version, isBack, model) {
366
- if (model) {
367
- setFlag({ newMode: false })
368
- if (model && flag.setBack === true) {
369
- resetState(false, model, reflect_1.clone(model))
370
- } else {
371
- handleVersion(origin, version)
372
- }
373
- } else {
374
- handleVersion(origin, version)
375
- }
376
- p1.showMessage(msg)
377
- if (isBack) {
378
- back(undefined)
379
- }
380
- }
381
- var succeed = p && p.succeed ? p.succeed : _succeed
382
- var _fail = function (result) {
383
- var f = refForm.current
384
- var u = p1.ui
385
- if (u && f) {
386
- var unmappedErrors = u.showFormError(f, result)
387
- formutil_1.focusFirstError(f)
388
- if (unmappedErrors && unmappedErrors.length > 0) {
389
- var t = resource.error
390
- if (p1.ui && p1.ui.buildErrorMessage) {
391
- var msg = p1.ui.buildErrorMessage(unmappedErrors)
392
- p1.showError(msg, undefined, t)
393
- } else {
394
- p1.showError(unmappedErrors[0].field + " " + unmappedErrors[0].code + " " + unmappedErrors[0].message, undefined, t)
395
- }
396
- }
397
- } else {
398
- var t = resource.error
399
- if (result.length > 0) {
400
- p1.showError(result[0].field + " " + result[0].code + " " + result[0].message, undefined, t)
401
- } else {
402
- p1.showError(t, undefined, t)
403
- }
404
- }
405
- }
406
- var fail = p && p.fail ? p.fail : _fail
407
- var _handleError = function (err) {
408
- if (err) {
409
- setRunning(false)
410
- common_1.hideLoading(p1.loading)
411
- var errHeader = resource.error
412
- var errMsg = resource.error_internal
413
- var data = err && err.response ? err.response : err
414
- if (data.status === 400) {
415
- var errMsg_1 = resource.error_400
416
- p1.showError(errMsg_1, undefined, errHeader)
417
- } else {
418
- p1.showError(errMsg, undefined, errHeader)
419
- }
420
- }
421
- }
422
- var handleError = p && p.handleError ? p.handleError : _handleError
423
- var _postSave = function (r, origin, version, isPatch, backOnSave) {
424
- setRunning(false)
425
- common_1.hideLoading(p1.loading)
426
- var x = r
427
- var successMsg = resource.msg_save_success
428
- var newMod = flag.newMode
429
- if (Array.isArray(x)) {
430
- fail(x)
431
- } else if (!isNaN(x)) {
432
- if (x > 0) {
433
- succeed(successMsg, origin, version, backOnSave)
434
- } else {
435
- if (newMod && x <= 0) {
436
- handleDuplicateKey()
437
- } else if (!newMod && x === 0) {
438
- handleNotFound()
439
- } else {
440
- var title = resource.error
441
- var err = resource.error_version
442
- p1.showError(err, undefined, title)
443
- }
444
- }
445
- } else {
446
- var result = r
447
- if (isPatch) {
448
- var keys = Object.keys(result)
449
- var a = origin
450
- for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {
451
- var k = keys_3[_i]
452
- a[k] = result[k]
453
- }
454
- succeed(successMsg, a, undefined, backOnSave, a)
455
- } else {
456
- succeed(successMsg, origin, version, backOnSave, r)
457
- }
458
- p1.showMessage(successMsg)
459
- }
460
- }
461
- var postSave = p && p.postSave ? p.postSave : _postSave
462
- var _handleDuplicateKey = function (result) {
463
- p1.showError(resource.error_duplicate_key, undefined, resource.error)
464
- }
465
- var handleDuplicateKey = p && p.handleDuplicateKey ? p.handleDuplicateKey : _handleDuplicateKey
466
- var _doSave = function (obj, body, version, isBack) {
467
- setRunning(true)
468
- common_1.showLoading(p1.loading)
469
- var isBackO = isBack != null && isBack !== undefined ? isBack : false
470
- var patchable = p ? p.patchable : true
471
- if (flag.newMode === false) {
472
- if (service.patch && patchable !== false && body && Object.keys(body).length > 0) {
473
- service
474
- .patch(body)
475
- .then(function (res) {
476
- postSave(res, obj, version, true, isBackO)
477
- })
478
- .catch(handleError)
479
- } else {
480
- service
481
- .update(obj)
482
- .then(function (res) {
483
- return postSave(res, obj, version, false, isBackO)
484
- })
485
- .catch(handleError)
486
- }
487
- } else {
488
- service
489
- .create(obj)
490
- .then(function (res) {
491
- return postSave(res, obj, version, false, isBackO)
492
- })
493
- .catch(handleError)
494
- }
495
- }
496
- var doSave = p && p.doSave ? p.doSave : _doSave
497
- var _load = function (_id, callback) {
498
- var id = _id
499
- if (id != null && id !== "") {
500
- setRunning(true)
501
- common_1.showLoading(p1.loading)
502
- service
503
- .load(id)
504
- .then(function (obj) {
505
- if (!obj) {
506
- handleNotFound(refForm.current)
507
- } else {
508
- setFlag({ newMode: false, originalModel: reflect_1.clone(obj) })
509
- if (callback) {
510
- callback(obj, showModel)
511
- } else {
512
- showModel(obj)
513
- }
514
- }
515
- setRunning(false)
516
- common_1.hideLoading(p1.loading)
517
- })
518
- .catch(function (err) {
519
- var _a, _b, _c
520
- var data = err && err.response ? err.response : err
521
- var title = resource.error
522
- var msg = resource.error_internal
523
- if (data && data.status === 422) {
524
- fail((_a = err.response) === null || _a === void 0 ? void 0 : _a.data)
525
- var obj = (_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.value
526
- if (obj) {
527
- callback ? callback(obj, showModel) : showModel(obj)
528
- }
529
- } else {
530
- if (data && data.status === 404) {
531
- handleNotFound(refForm.current)
532
- } else {
533
- if (data.status && !isNaN(data.status)) {
534
- msg = common_1.messageByHttpStatus(data.status, resource)
535
- }
536
- if (data && (data.status === 401 || data.status === 403)) {
537
- formutil_1.setReadOnly(refForm.current)
538
- }
539
- p1.showError(msg, undefined, title)
540
- }
541
- }
542
- setRunning(false)
543
- common_1.hideLoading(p1.loading)
544
- })
545
- } else {
546
- var obj = createModel()
547
- setFlag({ newMode: true, originalModel: undefined })
548
- if (callback) {
549
- callback(obj, showModel)
550
- } else {
551
- showModel(obj)
552
- }
553
- }
554
- }
555
- var load = p && p.load ? p.load : _load
556
- return __assign(__assign({}, baseProps), {
557
- back: back,
558
- refForm: refForm,
559
- ui: p1.ui,
560
- flag: flag,
561
- running: running,
562
- setRunning: setRunning,
563
- showModel: showModel,
564
- getModelName: getModelName,
565
- resetState: resetState,
566
- handleNotFound: handleNotFound,
567
- getModel: getModel,
568
- createModel: createModel,
569
- create: create,
570
- save: save,
571
- onSave: onSave,
572
- confirm: confirm,
573
- validate: validate,
574
- showMessage: p1.showMessage,
575
- succeed: succeed,
576
- fail: fail,
577
- postSave: postSave,
578
- handleDuplicateKey: handleDuplicateKey,
579
- load: load,
580
- doSave: doSave,
581
- })
582
- }