drf-react-by-schema 0.20.10 → 0.21.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.
Files changed (68) hide show
  1. package/dist/@types/index.d.ts +4 -1
  2. package/dist/@types/index.d.ts.map +1 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +2 -9
  5. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
  6. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +27 -29
  7. package/dist/components/DataGridBySchemaEditable/DataGridMobile.d.ts.map +1 -1
  8. package/dist/components/DataGridBySchemaEditable/DataGridMobile.js +1 -3
  9. package/dist/components/DataGridBySchemaEditable.d.ts.map +1 -1
  10. package/dist/components/DataGridBySchemaEditable.js +1 -0
  11. package/dist/components/GenericModelList.js +7 -7
  12. package/dist/components/GenericRelatedModelList.d.ts.map +1 -1
  13. package/dist/components/GenericRelatedModelList.js +6 -15
  14. package/dist/components/details/DetailBySchema.d.ts.map +1 -1
  15. package/dist/components/details/DetailBySchema.js +2 -2
  16. package/dist/components/details/DetailFieldBySchema.d.ts +1 -1
  17. package/dist/components/details/DetailFieldBySchema.d.ts.map +1 -1
  18. package/dist/components/details/DetailFieldBySchema.js +5 -1
  19. package/dist/components/forms/DialogFormBySchema.d.ts +1 -1
  20. package/dist/components/forms/DialogFormBySchema.d.ts.map +1 -1
  21. package/dist/components/forms/DialogFormBySchema.js +1 -1
  22. package/dist/components/forms/FieldBySchema.d.ts.map +1 -1
  23. package/dist/components/forms/FieldBySchema.js +4 -2
  24. package/dist/components/forms/FormBySchema.d.ts.map +1 -1
  25. package/dist/components/forms/FormBySchema.js +3 -3
  26. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts +1 -1
  27. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts.map +1 -1
  28. package/dist/components/forms/inputs/AutocompleteFieldBySchema.js +10 -6
  29. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts +1 -1
  30. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts.map +1 -1
  31. package/dist/components/forms/inputs/BooleanFieldBySchema.js +8 -3
  32. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts +1 -1
  33. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts.map +1 -1
  34. package/dist/components/forms/inputs/DesktopDatePickerBySchema.js +9 -4
  35. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts +1 -1
  36. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts.map +1 -1
  37. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.js +8 -3
  38. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.d.ts.map +1 -1
  39. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.js +19 -14
  40. package/dist/components/forms/inputs/FileFieldBySchema.d.ts +1 -1
  41. package/dist/components/forms/inputs/FileFieldBySchema.d.ts.map +1 -1
  42. package/dist/components/forms/inputs/FileFieldBySchema.js +14 -10
  43. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts +1 -1
  44. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts.map +1 -1
  45. package/dist/components/forms/inputs/FloatFieldBySchema.js +13 -9
  46. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts +1 -1
  47. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts.map +1 -1
  48. package/dist/components/forms/inputs/PatternFieldBySchema.js +8 -4
  49. package/dist/components/forms/inputs/TextFieldBySchema.d.ts +1 -1
  50. package/dist/components/forms/inputs/TextFieldBySchema.d.ts.map +1 -1
  51. package/dist/components/forms/inputs/TextFieldBySchema.js +8 -4
  52. package/dist/context/APIWrapper.d.ts +1 -1
  53. package/dist/context/APIWrapper.d.ts.map +1 -1
  54. package/dist/context/APIWrapper.js +175 -144
  55. package/dist/context/APIWrapperContext.d.ts +7 -8
  56. package/dist/context/APIWrapperContext.d.ts.map +1 -1
  57. package/dist/context/APIWrapperContext.js +1 -1
  58. package/dist/context/DRFReactBySchemaProvider.d.ts.map +1 -1
  59. package/dist/context/DRFReactBySchemaProvider.js +56 -15
  60. package/dist/context/Overlays.d.ts.map +1 -1
  61. package/dist/context/Overlays.js +4 -4
  62. package/dist/hooks/useWhyDidYouUpdate.d.ts +4 -0
  63. package/dist/hooks/useWhyDidYouUpdate.d.ts.map +1 -0
  64. package/dist/hooks/useWhyDidYouUpdate.js +26 -0
  65. package/dist/utils.d.ts +5 -2
  66. package/dist/utils.d.ts.map +1 -1
  67. package/dist/utils.js +64 -25
  68. package/package.json +1 -1
@@ -78,20 +78,114 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
78
78
  const [optionsAC, setOptionsAC] = (0, react_1.useReducer)((utils_1.reducer), null);
79
79
  const [pageForm, setPageForm] = (0, react_1.useReducer)((utils_1.reducer), initialPageForm);
80
80
  const editModel = (0, react_1.useRef)({});
81
- const updateUsuaria = () => {
81
+ // BASIC OPERATIONS DEPENDING DIRECTLY ON SERVER_ENDPOINT:
82
+ const localGetRawData = (0, react_1.useCallback)((route) => {
83
+ return (0, api_1.getRawData)({ path: route, serverEndPoint });
84
+ }, [serverEndPoint]);
85
+ const localGetAutoComplete = (0, react_1.useCallback)((model) => {
86
+ return (0, api_1.getAutoComplete)({ model, serverEndPoint });
87
+ }, [serverEndPoint]);
88
+ const localGetGenericModelList = (0, react_1.useCallback)((params) => {
89
+ return (0, api_1.getGenericModelList)(Object.assign(Object.assign({}, params), { serverEndPoint }));
90
+ }, [serverEndPoint]);
91
+ const localGetAllModels = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
92
+ const response = yield (0, api_1.getAllModels)(serverEndPoint);
93
+ if ('isAxiosError' in response) {
94
+ return [];
95
+ }
96
+ return response;
97
+ }), [serverEndPoint]);
98
+ const localLoginByPayload = (0, react_1.useCallback)((payload) => __awaiter(this, void 0, void 0, function* () {
99
+ const response = yield (0, api_1.loginByPayload)(payload, serverEndPoint);
100
+ if (typeof response !== 'boolean') {
101
+ console.log({
102
+ error: response,
103
+ payload,
104
+ });
105
+ return false;
106
+ }
107
+ return response;
108
+ }), [serverEndPoint]);
109
+ const localSignUp = (0, react_1.useCallback)((data) => __awaiter(this, void 0, void 0, function* () {
110
+ const response = yield (0, api_1.signUp)(data, serverEndPoint);
111
+ if ('isAxiosError' in response) {
112
+ return false;
113
+ }
114
+ return response;
115
+ }), [serverEndPoint]);
116
+ const localGetSignupOptions = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
117
+ const response = yield (0, api_1.getSignUpOptions)(serverEndPoint);
118
+ if ('isAxiosError' in response) {
119
+ return false;
120
+ }
121
+ return response;
122
+ }), [serverEndPoint]);
123
+ const signOut = (0, react_1.useCallback)(() => {
124
+ (0, api_1.clearJWT)();
82
125
  setUsuaria(null);
83
- (0, api_1.isLoggedIn)(serverEndPoint).then((usuaria) => {
84
- setUsuaria(usuaria || { erro: 'token inválido' });
126
+ }, []);
127
+ const localUpdateModel = (0, react_1.useCallback)((params) => __awaiter(this, void 0, void 0, function* () {
128
+ const response = yield (0, api_1.updateData)(Object.assign(Object.assign({}, params), { serverEndPoint }));
129
+ if ('isAxiosError' in response) {
130
+ return false;
131
+ }
132
+ return response;
133
+ }), [serverEndPoint]);
134
+ const postData = (0, react_1.useCallback)((params) => __awaiter(this, void 0, void 0, function* () {
135
+ const response = yield (0, api_1.createData)(Object.assign(Object.assign({}, params), { serverEndPoint }));
136
+ if ('isAxiosError' in response) {
137
+ return false;
138
+ }
139
+ return response;
140
+ }), [serverEndPoint]);
141
+ const updateUsuaria = (0, react_1.useCallback)(() => {
142
+ (0, api_1.isLoggedIn)(serverEndPoint).then((newUsuaria) => {
143
+ setUsuaria(newUsuaria || { erro: 'token inválido' });
85
144
  });
86
- };
87
- const onTriggerSnackBar = ({ msg, severity = 'info' }) => {
145
+ }, [serverEndPoint]);
146
+ // END OF SERVER_ENDPOINT DEPENDENT FUNCTIONS
147
+ const onTriggerSnackBar = (0, react_1.useCallback)(({ msg, severity = 'info' }) => {
88
148
  setSnackBar({
89
149
  open: true,
90
150
  msg,
91
151
  severity,
92
152
  });
93
- };
94
- const loadSinglePageData = (_a) => __awaiter(this, [_a], void 0, function* ({ model, objId, optionsACModels = null, defaults = {}, extraValidators, }) {
153
+ }, [setSnackBar]);
154
+ const populateInitialValues = (0, react_1.useCallback)((_a) => {
155
+ var { id, extraValidators, fieldsLayout } = _a, object = __rest(_a, ["id", "extraValidators", "fieldsLayout"]);
156
+ const values = (0, utils_1.populateValues)(object);
157
+ const uiFields = fieldsLayout
158
+ ? (0, utils_1.getFieldsFromFieldsLayout)(fieldsLayout)
159
+ : object.columns
160
+ ? Object.keys(object.columns)
161
+ : undefined;
162
+ const yupSchema = (0, utils_1.buildGenericYupValidationSchema)(Object.assign(Object.assign({}, object), { data: values, extraValidators,
163
+ uiFields }));
164
+ setPageForm({
165
+ id,
166
+ schema: object.schema,
167
+ columns: object.columns,
168
+ initialValues: values,
169
+ validationSchema: yupSchema,
170
+ forceReload: false,
171
+ });
172
+ return values;
173
+ }, []);
174
+ const populateOptionsAC = (0, react_1.useCallback)((optionsACModels) => __awaiter(this, void 0, void 0, function* () {
175
+ const promises = [];
176
+ for (const model of optionsACModels) {
177
+ promises.push(localGetAutoComplete(model));
178
+ }
179
+ const results = yield Promise.all(promises);
180
+ const newOptionsAC = {};
181
+ results.map((result, index) => {
182
+ if (result !== false) {
183
+ newOptionsAC[optionsACModels[index]] = result;
184
+ }
185
+ });
186
+ setOptionsAC(newOptionsAC);
187
+ }), [localGetAutoComplete]);
188
+ const loadSinglePageData = (0, react_1.useCallback)((_a) => __awaiter(this, [_a], void 0, function* ({ model, objId, optionsACModels, defaults = {}, extraValidators, fieldsLayout, }) {
95
189
  handleLoading(true);
96
190
  if (!objId || objId === 'novo') {
97
191
  objId = (0, utils_1.getTmpId)();
@@ -111,14 +205,15 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
111
205
  populateOptionsAC(optionsACModels);
112
206
  }
113
207
  for (const [field, value] of Object.entries(defaults)) {
114
- if (!object.data[field]) {
208
+ if (!object.data[field] && typeof object.data[field] !== 'boolean') {
115
209
  object.data[field] = value;
116
210
  }
117
211
  }
118
- const values = populateInitialValues(Object.assign({ id: objId, extraValidators }, object));
212
+ const values = populateInitialValues(Object.assign({ id: objId, extraValidators,
213
+ fieldsLayout }, object));
119
214
  return values;
120
- });
121
- const onSubmit = (model, id, data) => __awaiter(this, void 0, void 0, function* () {
215
+ }), [handleLoading, populateInitialValues, populateOptionsAC, serverEndPoint]);
216
+ const onSubmit = (0, react_1.useCallback)((model, id, data) => __awaiter(this, void 0, void 0, function* () {
122
217
  if (!pageForm || !pageForm.schema) {
123
218
  console.log('there must be a pageForm!');
124
219
  return false;
@@ -151,36 +246,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
151
246
  msg: id ? 'Dados atualizados com sucesso!' : 'Criado com sucesso!',
152
247
  });
153
248
  return response.id;
154
- });
155
- const populateOptionsAC = (optionsACModels) => __awaiter(this, void 0, void 0, function* () {
156
- const promises = [];
157
- for (const model of optionsACModels) {
158
- promises.push(localGetAutoComplete(model));
159
- }
160
- const results = yield Promise.all(promises);
161
- const newOptionsAC = {};
162
- results.map((result, index) => {
163
- if (result !== false) {
164
- newOptionsAC[optionsACModels[index]] = result;
165
- }
166
- });
167
- setOptionsAC(newOptionsAC);
168
- });
169
- const populateInitialValues = (_a) => {
170
- var { id, extraValidators } = _a, object = __rest(_a, ["id", "extraValidators"]);
171
- const values = (0, utils_1.populateValues)(object);
172
- const yupSchema = (0, utils_1.buildGenericYupValidationSchema)(Object.assign(Object.assign({}, object), { data: values, extraValidators }));
173
- setPageForm({
174
- id,
175
- schema: object.schema,
176
- columns: object.columns,
177
- initialValues: values,
178
- validationSchema: yupSchema,
179
- forceReload: false,
180
- });
181
- return values;
182
- };
183
- const onEditModelSave = (data) => __awaiter(this, void 0, void 0, function* () {
249
+ }), [handleLoading, onTriggerSnackBar, optionsAC, pageForm, populateOptionsAC, serverEndPoint]);
250
+ const onEditModelSave = (0, react_1.useCallback)((data) => __awaiter(this, void 0, void 0, function* () {
184
251
  setDialog({ open: false });
185
252
  handleLoading(true);
186
253
  const { fieldKey, index, model, id, setValue, getValues, schema } = editModel.current;
@@ -220,8 +287,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
220
287
  }
221
288
  handleLoading(false);
222
289
  return true;
223
- });
224
- const onEditModelDataGridSave = (_a) => __awaiter(this, [_a], void 0, function* ({ model, newRow, schema, }) {
290
+ }), [handleLoading, onTriggerSnackBar, populateOptionsAC, serverEndPoint, setDialog]);
291
+ const onEditModelDataGridSave = (0, react_1.useCallback)((_a) => __awaiter(this, [_a], void 0, function* ({ model, newRow, schema }) {
225
292
  const response = yield (0, api_1.updateDataBySchema)({
226
293
  model,
227
294
  modelObjectId: newRow.id,
@@ -247,8 +314,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
247
314
  severity: 'info',
248
315
  });
249
316
  return response;
250
- });
251
- const onEditModel = ({ fieldKey, index, model, id, labelKey, setValue, getValues, fieldsLayout, initialValuesPartial, }) => {
317
+ }), [onTriggerSnackBar, serverEndPoint]);
318
+ const onEditModel = (0, react_1.useCallback)(({ fieldKey, index, model, id, labelKey, setValue, getValues, fieldsLayout, initialValuesPartial, }) => {
252
319
  setDialog({
253
320
  open: true,
254
321
  loading: true,
@@ -264,9 +331,15 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
264
331
  return false;
265
332
  }
266
333
  const populatedValues = (0, utils_1.populateValues)(result);
334
+ const uiFields = fieldsLayout
335
+ ? (0, utils_1.getFieldsFromFieldsLayout)(fieldsLayout)
336
+ : result.columns
337
+ ? result.columns.map(({ field }) => field)
338
+ : undefined;
267
339
  const yupSchema = (0, utils_1.buildGenericYupValidationSchema)({
268
340
  schema: result.schema,
269
341
  data: populatedValues,
342
+ uiFields,
270
343
  });
271
344
  const values = (0, utils_1.isTmpId)(id) && initialValuesPartial
272
345
  ? Object.assign(Object.assign({}, populatedValues), initialValuesPartial) : Object.assign({}, populatedValues);
@@ -289,19 +362,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
289
362
  schema: result.schema,
290
363
  };
291
364
  });
292
- };
293
- const onDeleteModel = (model, id, onSuccess) => {
294
- setDialog({
295
- open: true,
296
- loading: false,
297
- title: 'Apagar',
298
- Body: 'Tem certeza de que deseja apagar este item?',
299
- Actions: (react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, handleSave: (event) => {
300
- return onDeleteModelSave(model, id, onSuccess, event);
301
- }, btnConfirm: "Sim, apagar" })),
302
- });
303
- };
304
- const onDeleteModelSave = (model, id, onSuccess, event) => __awaiter(this, void 0, void 0, function* () {
365
+ }, [localGetAutoComplete, onEditModelSave, optionsAC, serverEndPoint, setDialog]);
366
+ const onDeleteModelSave = (0, react_1.useCallback)((model, id, onSuccess, event) => __awaiter(this, void 0, void 0, function* () {
305
367
  setDialog({ open: false });
306
368
  handleLoading(true);
307
369
  const ret = yield (0, api_1.deleteData)(model, serverEndPoint, id);
@@ -321,8 +383,19 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
321
383
  severity: 'error',
322
384
  });
323
385
  return false;
324
- });
325
- const onEditRelatedModelSave = (_a) => __awaiter(this, [_a], void 0, function* ({ model, id, relatedModel, newRow, schema, onlyAddExisting, }) {
386
+ }), [handleLoading, onTriggerSnackBar, serverEndPoint, setDialog]);
387
+ const onDeleteModel = (0, react_1.useCallback)((model, id, onSuccess) => {
388
+ setDialog({
389
+ open: true,
390
+ loading: false,
391
+ title: 'Apagar',
392
+ Body: 'Tem certeza de que deseja apagar este item?',
393
+ Actions: (react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, handleSave: (event) => {
394
+ return onDeleteModelSave(model, id, onSuccess, event);
395
+ }, btnConfirm: "Sim, apagar" })),
396
+ });
397
+ }, [onDeleteModelSave, setDialog]);
398
+ const onEditRelatedModelSave = (0, react_1.useCallback)((_a) => __awaiter(this, [_a], void 0, function* ({ model, id, relatedModel, newRow, schema, onlyAddExisting, }) {
326
399
  const updateUrl = `${model}/${id}/${relatedModel}`;
327
400
  if (onlyAddExisting) {
328
401
  const response = yield (0, api_1.addExistingRelatedModel)({
@@ -385,8 +458,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
385
458
  severity: 'info',
386
459
  });
387
460
  return response;
388
- });
389
- const onDeleteRelatedModel = (_a) => __awaiter(this, [_a], void 0, function* ({ model, id, relatedModel, relatedModelId, }) {
461
+ }), [onTriggerSnackBar, serverEndPoint]);
462
+ const onDeleteRelatedModel = (0, react_1.useCallback)((_a) => __awaiter(this, [_a], void 0, function* ({ model, id, relatedModel, relatedModelId }) {
390
463
  const deleteUrl = `${model}/${id}/${relatedModel}`;
391
464
  const response = yield (0, api_1.deleteData)(deleteUrl, serverEndPoint, relatedModelId);
392
465
  if (response !== true) {
@@ -405,90 +478,14 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
405
478
  severity: 'info',
406
479
  });
407
480
  return response;
408
- });
481
+ }), [onTriggerSnackBar, serverEndPoint]);
409
482
  (0, react_1.useEffect)(() => {
410
483
  updateUsuaria();
411
- // eslint-disable-next-line react-hooks/exhaustive-deps
412
- }, []);
413
- (0, react_1.useEffect)(() => {
414
484
  setPageForm(initialPageForm);
485
+ // eslint-disable-next-line react-hooks/exhaustive-deps
415
486
  }, []);
416
- if (!serverEndPoint) {
417
- console.error('There must be a serverEndPoint properly configured for apiWrapper to work!');
418
- return react_1.default.createElement(react_1.default.Fragment, null, children);
419
- }
420
- function localGetRawData(route) {
421
- return (0, api_1.getRawData)({ path: route, serverEndPoint });
422
- }
423
- function localGetAutoComplete(model) {
424
- return (0, api_1.getAutoComplete)({ model, serverEndPoint });
425
- }
426
- function localGetGenericModelList(params) {
427
- return (0, api_1.getGenericModelList)(Object.assign(Object.assign({}, params), { serverEndPoint }));
428
- }
429
- function localGetAllModels() {
430
- return __awaiter(this, void 0, void 0, function* () {
431
- const response = yield (0, api_1.getAllModels)(serverEndPoint);
432
- if ('isAxiosError' in response) {
433
- return [];
434
- }
435
- return response;
436
- });
437
- }
438
- function localLoginByPayload(payload) {
439
- return __awaiter(this, void 0, void 0, function* () {
440
- const response = yield (0, api_1.loginByPayload)(payload, serverEndPoint);
441
- if (typeof response !== 'boolean') {
442
- console.log({
443
- error: response,
444
- payload,
445
- });
446
- return false;
447
- }
448
- return response;
449
- });
450
- }
451
- function localSignUp(data) {
452
- return __awaiter(this, void 0, void 0, function* () {
453
- const response = yield (0, api_1.signUp)(data, serverEndPoint);
454
- if ('isAxiosError' in response) {
455
- return false;
456
- }
457
- return response;
458
- });
459
- }
460
- function localGetSignupOptions() {
461
- return __awaiter(this, void 0, void 0, function* () {
462
- const response = yield (0, api_1.getSignUpOptions)(serverEndPoint);
463
- if ('isAxiosError' in response) {
464
- return false;
465
- }
466
- return response;
467
- });
468
- }
469
- function signOut() {
470
- (0, api_1.clearJWT)();
471
- setUsuaria(null);
472
- }
473
- function localUpdateModel(params) {
474
- return __awaiter(this, void 0, void 0, function* () {
475
- const response = yield (0, api_1.updateData)(Object.assign(Object.assign({}, params), { serverEndPoint }));
476
- if ('isAxiosError' in response) {
477
- return false;
478
- }
479
- return response;
480
- });
481
- }
482
- function postData(params) {
483
- return __awaiter(this, void 0, void 0, function* () {
484
- const response = yield (0, api_1.createData)(Object.assign(Object.assign({}, params), { serverEndPoint }));
485
- if ('isAxiosError' in response) {
486
- return false;
487
- }
488
- return response;
489
- });
490
- }
491
- return (react_1.default.createElement(APIWrapperContext_1.APIWrapperContext.Provider, { value: {
487
+ const contextValue = (0, react_1.useMemo)(() => {
488
+ return {
492
489
  usuaria,
493
490
  updateUsuaria,
494
491
  onSubmit,
@@ -519,11 +516,45 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
519
516
  signOut,
520
517
  postData: postData,
521
518
  // Remove after integrating new "onEditModel" to package:
522
- serverEndPoint,
519
+ // serverEndPoint,
523
520
  editModel,
524
521
  updateModel: localUpdateModel,
525
522
  populateOptionsAC,
526
523
  isMobile,
527
- } }, children));
524
+ };
525
+ }, [
526
+ handleLoading,
527
+ isMobile,
528
+ loadSinglePageData,
529
+ localGetAllModels,
530
+ localGetAutoComplete,
531
+ localGetGenericModelList,
532
+ localGetRawData,
533
+ localGetSignupOptions,
534
+ localLoginByPayload,
535
+ localSignUp,
536
+ localUpdateModel,
537
+ onDeleteModel,
538
+ onDeleteRelatedModel,
539
+ onEditModel,
540
+ onEditModelDataGridSave,
541
+ onEditModelSave,
542
+ onEditRelatedModelSave,
543
+ onSubmit,
544
+ onTriggerSnackBar,
545
+ optionsAC,
546
+ pageForm,
547
+ populateOptionsAC,
548
+ postData,
549
+ setDialog,
550
+ signOut,
551
+ updateUsuaria,
552
+ usuaria,
553
+ ]);
554
+ if (!serverEndPoint) {
555
+ console.error('There must be a serverEndPoint properly configured for apiWrapper to work!');
556
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
557
+ }
558
+ return react_1.default.createElement(APIWrapperContext_1.APIWrapperContext.Provider, { value: contextValue }, children);
528
559
  }
529
560
  exports.default = react_1.default.memo(APIWrapper);
@@ -1,19 +1,19 @@
1
- import React from 'react';
1
+ import React, { ActionDispatch } from 'react';
2
2
  import { FieldValues, SubmitHandler, UseFormGetValues, UseFormSetValue } from 'react-hook-form';
3
3
  import { AlertColor, AlertPropsColorOverrides } from '@mui/material/Alert';
4
4
  import { OverridableStringUnion } from '@mui/types';
5
5
  import { ObjectSchema } from 'yup';
6
6
  import { ItemSchemaColumnsType, Id, Item, SchemaType, DataSchemaColumnsType, OnSuccessEvent, OptionsAC, GenericValue, FormFieldLayout, TargetApiParamsLocal, TargetApiPostParamsLocal, GetGenericModelListPropsLocal, GridEnrichedBySchemaColDef, ExtraValidators } from '../@types';
7
- import { ServerEndPoint } from './DRFReactBySchemaContext';
8
7
  export interface LoadSinglePageDataProps {
9
8
  model: string;
10
9
  objId?: Id;
11
10
  objTitleField?: string;
12
- optionsACModels: string[] | null;
11
+ optionsACModels?: string[];
13
12
  defaults?: Item;
14
13
  basePath?: string;
15
14
  formPath?: string | null;
16
15
  extraValidators?: ExtraValidators;
16
+ fieldsLayout?: FormFieldLayout[];
17
17
  }
18
18
  export interface PageFormType {
19
19
  id: Id;
@@ -75,10 +75,10 @@ export interface APIWrapperContextType {
75
75
  onSubmit: DRFReactBySchemaSubmitHandler;
76
76
  loadSinglePageData: (p: LoadSinglePageDataProps) => Promise<false | Item>;
77
77
  handleLoading: (p: boolean) => void;
78
- optionsACState: [OptionsAC | null, (x: Partial<OptionsAC>) => void];
78
+ optionsACState: (OptionsAC | ActionDispatch<[newState: Partial<OptionsAC> | null]> | null)[];
79
79
  optionsAC: OptionsAC | null;
80
80
  setOptionsAC: (x: Partial<OptionsAC>) => void;
81
- pageFormState: [PageFormType | null, (x: Partial<PageFormType>) => void];
81
+ pageFormState: (PageFormType | ActionDispatch<[newState: Partial<PageFormType> | null]> | null)[];
82
82
  pageForm: PageFormType | null;
83
83
  setPageForm: (x: Partial<PageFormType>) => void;
84
84
  onEditModel: (p: OnEditModelType) => void;
@@ -88,7 +88,7 @@ export interface APIWrapperContextType {
88
88
  onEditRelatedModelSave: (p: OnEditRelatedModelType) => Promise<false | Item | ItemSchemaColumnsType>;
89
89
  onDeleteRelatedModel: (p: OnDeleteRelatedModelType) => Promise<boolean>;
90
90
  onTriggerSnackBar: (p: SnackBarType) => void;
91
- setDialog: (x: Partial<DialogType>) => void;
91
+ setDialog: React.ActionDispatch<[newState: Partial<DialogType> | null]>;
92
92
  getRawData: (route: string) => Promise<GenericValue>;
93
93
  getAutoComplete: (model: string) => Promise<false | Item[]>;
94
94
  getGenericModelList: (x: GetGenericModelListPropsLocal) => Promise<false | DataSchemaColumnsType>;
@@ -98,8 +98,7 @@ export interface APIWrapperContextType {
98
98
  signUp: (data: Item) => Promise<false | Item>;
99
99
  signOut: () => void;
100
100
  postData: (params: TargetApiPostParamsLocal) => Promise<false | Item>;
101
- serverEndPoint: ServerEndPoint;
102
- editModel: React.MutableRefObject<Item>;
101
+ editModel: React.RefObject<Item>;
103
102
  updateModel: (p: TargetApiParamsLocal) => Promise<false | Item>;
104
103
  populateOptionsAC: (optionsACModels: string[]) => void;
105
104
  isMobile: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"APIWrapperContext.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapperContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIWrapperContext.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapperContext.tsx"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ exports.APIWrapperContext = react_1.default.createContext({
45
45
  signOut: () => undefined,
46
46
  postData: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
47
47
  // Remove after integrating new "onEditModel" to package:
48
- serverEndPoint: { url: '', apiTokenUrl: '' },
48
+ // serverEndPoint: { url: '', apiTokenUrl: '' },
49
49
  editModel: { current: {} },
50
50
  updateModel: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
51
51
  populateOptionsAC: () => undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"DRFReactBySchemaProvider.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EACL,2BAA2B,EAG5B,MAAM,2BAA2B,CAAC;AAEnC,UAAU,6BAA8B,SAAQ,2BAA2B;IACzE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,QAAA,MAAM,wBAAwB,GAAI,qEAM/B,6BAA6B,sBA2C/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DRFReactBySchemaProvider.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAMvC,OAAO,EACL,2BAA2B,EAG5B,MAAM,2BAA2B,CAAC;AAEnC,UAAU,6BAA8B,SAAQ,2BAA2B;IACzE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,QAAA,MAAM,wBAAwB,GAAI,qEAM/B,6BAA6B,sBAyD/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
39
+ const react_1 = __importStar(require("react"));
7
40
  const styles_1 = require("@mui/material/styles");
8
41
  const CssBaseline_1 = __importDefault(require("@mui/material/CssBaseline"));
9
42
  const theme_1 = __importDefault(require("../styles/theme"));
@@ -16,7 +49,11 @@ const DRFReactBySchemaContext_1 = require("./DRFReactBySchemaContext");
16
49
  * @returns {*}
17
50
  */
18
51
  const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBatchLength, children, }) => {
19
- if (serverEndPoint) {
52
+ const newServerEndPoint = (0, react_1.useMemo)(() => {
53
+ if (!serverEndPoint) {
54
+ return null;
55
+ }
56
+ const newServerEndPoint = Object.assign({}, serverEndPoint);
20
57
  const defaultKeys = [
21
58
  'autocomplete',
22
59
  'api',
@@ -27,28 +64,32 @@ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBat
27
64
  ];
28
65
  for (const key of defaultKeys) {
29
66
  if (key === 'getToken') {
30
- serverEndPoint[key] = serverEndPoint.apiTokenUrl;
67
+ newServerEndPoint[key] = newServerEndPoint.apiTokenUrl;
31
68
  continue;
32
69
  }
33
70
  const hybridKey = typeof key === 'string' ? key : key[0];
34
71
  const hybridUrl = typeof key === 'string' ? key : key[1];
35
- if (serverEndPoint[hybridKey]) {
72
+ if (newServerEndPoint[hybridKey]) {
36
73
  continue;
37
74
  }
38
- serverEndPoint[hybridKey] = ['refreshToken', 'verifyToken'].includes(hybridKey)
39
- ? `${serverEndPoint.apiTokenUrl}${hybridUrl}/`
40
- : `${serverEndPoint.url}/${hybridUrl}`;
75
+ newServerEndPoint[hybridKey] = ['refreshToken', 'verifyToken'].includes(hybridKey)
76
+ ? `${newServerEndPoint.apiTokenUrl}${hybridUrl}/`
77
+ : `${newServerEndPoint.url}/${hybridUrl}`;
41
78
  }
42
- }
43
- const mergedTheme = theme ? Object.assign(Object.assign({}, theme_1.default), theme) : theme_1.default;
79
+ return newServerEndPoint;
80
+ }, [serverEndPoint]);
81
+ const mergedTheme = (0, react_1.useMemo)(() => {
82
+ return theme ? Object.assign(Object.assign({}, theme_1.default), theme) : theme_1.default;
83
+ }, [theme]);
84
+ const contextValue = (0, react_1.useMemo)(() => ({
85
+ serverEndPoint: newServerEndPoint,
86
+ theme: mergedTheme,
87
+ isInBatches,
88
+ firstBatchLength,
89
+ }), [firstBatchLength, isInBatches, mergedTheme, newServerEndPoint]);
44
90
  return (react_1.default.createElement(styles_1.ThemeProvider, { theme: mergedTheme },
45
91
  react_1.default.createElement(CssBaseline_1.default, null),
46
- react_1.default.createElement(DRFReactBySchemaContext_1.DRFReactBySchemaContext.Provider, { value: {
47
- serverEndPoint,
48
- theme: mergedTheme,
49
- isInBatches,
50
- firstBatchLength,
51
- } },
92
+ react_1.default.createElement(DRFReactBySchemaContext_1.DRFReactBySchemaContext.Provider, { value: contextValue },
52
93
  react_1.default.createElement(Overlays_1.default, null, children))));
53
94
  };
54
95
  exports.default = DRFReactBySchemaProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"Overlays.d.ts","sourceRoot":"","sources":["../../src/context/Overlays.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAepD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA6E3E"}
1
+ {"version":3,"file":"Overlays.d.ts","sourceRoot":"","sources":["../../src/context/Overlays.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAejE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA6E3E"}
@@ -66,7 +66,7 @@ function Overlays({ children }) {
66
66
  const [dialog, setDialog] = (0, react_1.useReducer)((utils_1.reducer), initialDialog);
67
67
  const [loading, setLoading] = (0, react_1.useState)(false);
68
68
  // give some time to stop loading when data is retrieved and must render before loading rendering:
69
- const handleLoading = (loadingState) => {
69
+ const handleLoading = (0, react_1.useCallback)((loadingState) => {
70
70
  if (loadingState) {
71
71
  setLoading(true);
72
72
  return;
@@ -74,12 +74,12 @@ function Overlays({ children }) {
74
74
  setTimeout(() => {
75
75
  setLoading(false);
76
76
  }, 300);
77
- };
78
- const handleDialogClose = () => {
77
+ }, []);
78
+ const handleDialogClose = (0, react_1.useCallback)(() => {
79
79
  setDialog({
80
80
  open: false,
81
81
  });
82
- };
82
+ }, []);
83
83
  return (react_1.default.createElement(react_1.default.Fragment, null,
84
84
  react_1.default.createElement(APIWrapper_1.default, { handleLoading: handleLoading, setSnackBar: setSnackBar, setDialog: setDialog }, children),
85
85
  react_1.default.createElement(Backdrop_1.default, { invisible: false, sx: { color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }, open: loading },
@@ -0,0 +1,4 @@
1
+ import { GenericValue } from '../@types';
2
+ declare function useWhyDidYouUpdate(name: string, props: Record<string, GenericValue>): void;
3
+ export default useWhyDidYouUpdate;
4
+ //# sourceMappingURL=useWhyDidYouUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWhyDidYouUpdate.d.ts","sourceRoot":"","sources":["../../src/hooks/useWhyDidYouUpdate.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,QAwB5E;AAED,eAAe,kBAAkB,CAAC"}