drf-react-by-schema 0.26.8 → 0.26.9
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/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts +3 -5
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +12 -13
- package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.d.ts +3 -5
- package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/hooks/useDataGridActions.js +17 -37
- package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.d.ts +2 -5
- package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.js +15 -24
- package/dist/components/DataGridBySchemaEditable/utils.d.ts +21 -2
- package/dist/components/DataGridBySchemaEditable/utils.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/utils.js +61 -3
- package/dist/components/DataGridBySchemaEditable.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable.js +28 -35
- package/dist/components/GenericModelList.d.ts +0 -1
- package/dist/components/GenericModelList.d.ts.map +1 -1
- package/dist/components/GenericModelList.js +10 -17
- package/dist/components/GenericRelatedModelList.d.ts +0 -1
- package/dist/components/GenericRelatedModelList.d.ts.map +1 -1
- package/dist/components/GenericRelatedModelList.js +2 -7
- package/package.json +1 -1
|
@@ -13,9 +13,8 @@ import { OnEditModelType } from '../../context/APIWrapperContext';
|
|
|
13
13
|
interface DataGridDesktopProps<T extends TField = void> {
|
|
14
14
|
schema: SchemaType<T>;
|
|
15
15
|
apiRef: RefObject<GridApiCommunity>;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
16
|
+
dataGridRows: Item<T>[];
|
|
17
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
19
18
|
rowCount?: number;
|
|
20
19
|
columns: GridEnrichedBySchemaColDef<T>[];
|
|
21
20
|
columnVisibilityModel?: GridColumnVisibilityModel;
|
|
@@ -39,7 +38,6 @@ interface DataGridDesktopProps<T extends TField = void> {
|
|
|
39
38
|
customLinkDestination?: (p: GridRenderCellParams) => string;
|
|
40
39
|
LinkComponent?: LinkComponentType;
|
|
41
40
|
onProcessRow?: (p: Item<T>) => void;
|
|
42
|
-
onDataChange?: (p: Item<T>[]) => void;
|
|
43
41
|
onEditModel?: (p: OnEditModelType<T>) => void;
|
|
44
42
|
isEditable?: boolean;
|
|
45
43
|
hasBulkSelect?: boolean;
|
|
@@ -68,6 +66,6 @@ interface DataGridDesktopProps<T extends TField = void> {
|
|
|
68
66
|
setSnackBar: React.Dispatch<React.SetStateAction<Item>>;
|
|
69
67
|
yupValidationSchema: AnySchema | null;
|
|
70
68
|
}
|
|
71
|
-
declare function DataGridDesktop<T extends TField = void>({ schema, apiRef,
|
|
69
|
+
declare function DataGridDesktop<T extends TField = void>({ schema, apiRef, dataGridRows, setDataGridRows, rowCount, columns, columnVisibilityModel, model, name, indexField, addExistingModel, indexFieldMinWidth, indexFieldBasePath, indexFieldViewBasePath, stateToLink, minWidth, loading, modelParent, modelParentId, customColumnOperations, customFieldFormLayouts, customLinkDestination, LinkComponent, onProcessRow, onEditModel, isEditable, hasBulkSelect, onSelectActions, sx: sxProp, isAutoHeight, defaultValues, hideFooterPagination, setVisibleRows, paginationModel, setPaginationModel, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, customActions, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, optionsAC: optionsACExternal, extraValidators, emptyItem, handleDeleteClick, setSnackBar, yupValidationSchema, }: DataGridDesktopProps<T>): React.JSX.Element;
|
|
72
70
|
export default DataGridDesktop;
|
|
73
71
|
//# sourceMappingURL=DataGridDesktop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA0C,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAEL,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EAI1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAOhF,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,QAAQ,kBAAkB,CAAC;IAEhC,UAAU,qBAAsB,SAAQ,kBAAkB;KAAG;CAC9D;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,eAAe,EACf,SAAS,EAET,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACR,sBAAsB,EAEtB,WAAW,EACX,MAAM,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAiB,MAAM,iCAAiC,CAAC;AAYjF,UAAU,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACpD,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,
|
|
1
|
+
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ const useOptionsAC_1 = require("./hooks/useOptionsAC");
|
|
|
57
57
|
const usePreparedColumns_1 = require("./hooks/usePreparedColumns");
|
|
58
58
|
const useDataGridActions_1 = require("./hooks/useDataGridActions");
|
|
59
59
|
const useProcessRowUpdate_1 = require("./hooks/useProcessRowUpdate");
|
|
60
|
-
function DataGridDesktop({ schema, apiRef,
|
|
60
|
+
function DataGridDesktop({ schema, apiRef, dataGridRows, setDataGridRows, rowCount = 0, columns, columnVisibilityModel, model, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', indexFieldViewBasePath, stateToLink = {}, minWidth = 80, loading, modelParent, modelParentId, customColumnOperations, customFieldFormLayouts, customLinkDestination, LinkComponent, onProcessRow, onEditModel, isEditable = false, hasBulkSelect, onSelectActions, sx: sxProp, isAutoHeight, defaultValues, hideFooterPagination, setVisibleRows, paginationModel, setPaginationModel, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions = ['editInline', 'remove'], customActions, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, optionsAC: optionsACExternal, extraValidators, emptyItem, handleDeleteClick, setSnackBar, yupValidationSchema, }) {
|
|
61
61
|
const [dataGridLoading, setDataGridLoading] = (0, react_1.useState)(false);
|
|
62
62
|
const [isRowEditing, setIsRowEditing] = (0, react_1.useState)();
|
|
63
63
|
const [validationErrors, setValidationErrors] = (0, react_1.useState)({});
|
|
@@ -84,10 +84,10 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
84
84
|
apiRef.current.stopRowEditMode({ id, ignoreModifications: true });
|
|
85
85
|
handleStopEditing();
|
|
86
86
|
if ((0, utils_1.isTmpId)(id)) {
|
|
87
|
-
|
|
87
|
+
(0, utils_2.deleteRow)({ id, apiRef, setDataGridRows });
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
}, [apiRef,
|
|
90
|
+
}, [apiRef, setDataGridRows]);
|
|
91
91
|
const { optionsAC, updateOptionsAC } = (0, useOptionsAC_1.useOptionsAC)({
|
|
92
92
|
columns,
|
|
93
93
|
schema,
|
|
@@ -95,7 +95,8 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
95
95
|
});
|
|
96
96
|
const { handleAddItem, bulkUpdateData, bulkDeleteData, bulkCreateData, handleExportExcel } = (0, useDataGridActions_1.useDataGridActions)({
|
|
97
97
|
apiRef,
|
|
98
|
-
|
|
98
|
+
dataGridRows,
|
|
99
|
+
setDataGridRows,
|
|
99
100
|
setSnackBar,
|
|
100
101
|
emptyItem,
|
|
101
102
|
defaultValues,
|
|
@@ -139,10 +140,9 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
139
140
|
extraValidators,
|
|
140
141
|
onEditModel,
|
|
141
142
|
onProcessRow,
|
|
142
|
-
onDataChange,
|
|
143
143
|
updateOptionsAC,
|
|
144
144
|
apiRef,
|
|
145
|
-
|
|
145
|
+
setDataGridRows,
|
|
146
146
|
setDataGridLoading,
|
|
147
147
|
setValidationErrors,
|
|
148
148
|
processingRow,
|
|
@@ -178,14 +178,13 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
178
178
|
handleCancelRow(isRowEditing);
|
|
179
179
|
}
|
|
180
180
|
apiRef.current.startRowEditMode({ id, fieldToFocus });
|
|
181
|
-
(0, utils_2.scrollToEnd)(apiRef);
|
|
182
181
|
handleStartEditing(id);
|
|
183
182
|
}, color: "inherit" }));
|
|
184
183
|
break;
|
|
185
184
|
case 'remove':
|
|
186
185
|
actionItems.push(react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `remove_${id}`, icon: react_1.default.createElement(Delete_1.default, null), label: "Apagar essa linha", onClick: () => {
|
|
187
186
|
if ((0, utils_1.isTmpId)(id)) {
|
|
188
|
-
|
|
187
|
+
(0, utils_2.deleteRow)({ id, apiRef, setDataGridRows });
|
|
189
188
|
return;
|
|
190
189
|
}
|
|
191
190
|
handleDeleteClick(id);
|
|
@@ -213,7 +212,7 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
213
212
|
});
|
|
214
213
|
if (customActions) {
|
|
215
214
|
customActions.forEach((customAction) => {
|
|
216
|
-
actionItems.push(react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `${customAction.key}_${id}`, icon: customAction.icon, label: customAction.label, onClick: () => customAction.handleClick(
|
|
215
|
+
actionItems.push(react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `${customAction.key}_${id}`, icon: customAction.icon, label: customAction.label, onClick: () => customAction.handleClick(dataGridRows.find((row) => row.id === id)) }));
|
|
217
216
|
});
|
|
218
217
|
}
|
|
219
218
|
return actionItems;
|
|
@@ -222,7 +221,7 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
222
221
|
apiRef,
|
|
223
222
|
handleDeleteClick,
|
|
224
223
|
isRowEditing,
|
|
225
|
-
|
|
224
|
+
dataGridRows,
|
|
226
225
|
LinkComponent,
|
|
227
226
|
actions,
|
|
228
227
|
customActions,
|
|
@@ -241,7 +240,7 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
241
240
|
}
|
|
242
241
|
: {}));
|
|
243
242
|
return (react_1.default.createElement(Box_1.default, { className: `dataGrid_${name}`, sx: Object.assign({ height: '100%', width: '100%', maxWidth: '100%', display: 'grid' }, sxProp) }, preparedColumns === null ? (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.loadingBox },
|
|
244
|
-
react_1.default.createElement(CircularProgress_1.default, null))) : (react_1.default.createElement(x_data_grid_1.DataGrid, { apiRef: apiRef, rows:
|
|
243
|
+
react_1.default.createElement(CircularProgress_1.default, null))) : (react_1.default.createElement(x_data_grid_1.DataGrid, { apiRef: apiRef, rows: dataGridRows, columns: isEditable ? [actionColumn, ...(preparedColumns || [])] : preparedColumns || [], getCellClassName: ({ id, cellMode, field }) => {
|
|
245
244
|
if (cellMode !== 'edit') {
|
|
246
245
|
return '';
|
|
247
246
|
}
|
|
@@ -263,7 +262,7 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
263
262
|
// isRowEditing &&
|
|
264
263
|
isPermanentRow || ((0, utils_1.isTmpId)(row.id) && (isIndexField || isIndexFieldEditable)));
|
|
265
264
|
}, checkboxSelection: checkboxSelection, onRowSelectionModelChange: (newSelectionModel) => {
|
|
266
|
-
const selectedData =
|
|
265
|
+
const selectedData = dataGridRows.filter((item) => newSelectionModel.includes(item.id));
|
|
267
266
|
setSelectionModel(selectedData);
|
|
268
267
|
setSelectionModelIds([...newSelectionModel]);
|
|
269
268
|
}, rowSelectionModel: selectionModelIds, disableRowSelectionOnClick: disableRowSelectionOnClick, onRowEditStart: (params) => {
|
|
@@ -371,7 +370,7 @@ function DataGridDesktop({ schema, apiRef, dataGrid, rowCount = 0, columns, colu
|
|
|
371
370
|
}
|
|
372
371
|
// const shouldMemoUpdate = (prevProps: DataGridDesktopProps, nextProps: DataGridDesktopProps) => {
|
|
373
372
|
// return (
|
|
374
|
-
// prevProps.
|
|
373
|
+
// prevProps.dataGridRows === nextProps.dataGridRows &&
|
|
375
374
|
// prevProps.loading === nextProps.loading &&
|
|
376
375
|
// prevProps.schema === nextProps.schema &&
|
|
377
376
|
// prevProps.columns === nextProps.columns
|
|
@@ -7,21 +7,19 @@ interface UseDataGridActionsProps<T extends TField = void> {
|
|
|
7
7
|
model: string;
|
|
8
8
|
schema: SchemaType<T>;
|
|
9
9
|
emptyItem: PartialItem<T>;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
10
|
+
dataGridRows: Item<T>[];
|
|
11
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
13
12
|
setSelectionModel: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
14
13
|
setSelectionModelIds: (value: React.SetStateAction<GridRowId[]>) => void;
|
|
15
14
|
setSnackBar: (value: React.SetStateAction<Item>) => void;
|
|
16
15
|
setDataGridLoading: (value: boolean) => void;
|
|
17
|
-
onDataChange?: (p: Item<T>[]) => void;
|
|
18
16
|
handleStartEditing: (p?: Id) => void;
|
|
19
17
|
tableAutoHeight?: boolean;
|
|
20
18
|
indexField: FieldKey<T>;
|
|
21
19
|
defaultValues?: PartialItem<T>;
|
|
22
20
|
isRowEditing?: Id;
|
|
23
21
|
}
|
|
24
|
-
export declare const useDataGridActions: <T extends TField = void>({ apiRef, model, schema, emptyItem,
|
|
22
|
+
export declare const useDataGridActions: <T extends TField = void>({ apiRef, model, schema, emptyItem, dataGridRows, setDataGridRows, setSelectionModel, setSelectionModelIds, setSnackBar, setDataGridLoading, handleStartEditing, tableAutoHeight, indexField, defaultValues, isRowEditing, }: UseDataGridActionsProps<T>) => {
|
|
25
23
|
handleAddItem: () => void;
|
|
26
24
|
bulkUpdateData: BulkUpdateData<T>;
|
|
27
25
|
bulkDeleteData: BulkDeleteData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataGridActions.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useDataGridActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,EAAE,EACF,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACvD,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"useDataGridActions.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useDataGridActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,EAAE,EACF,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,WAAW,EACX,MAAM,EACN,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACvD,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAClE,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpE,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IACzE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACzD,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,8NAgBzD,uBAAuB,CAAC,CAAC,CAAC;;;;0BAgIQ,EAAE,EAAE;yCAWW,eAAe;CAqBlE,CAAC"}
|
|
@@ -17,7 +17,7 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
17
17
|
const utils_1 = require("../../../utils");
|
|
18
18
|
const APIWrapperContext_1 = require("../../../context/APIWrapperContext");
|
|
19
19
|
const utils_2 = require("../utils");
|
|
20
|
-
const useDataGridActions = ({ apiRef, model, schema, emptyItem,
|
|
20
|
+
const useDataGridActions = ({ apiRef, model, schema, emptyItem, dataGridRows, setDataGridRows, setSelectionModel, setSelectionModelIds, setSnackBar, setDataGridLoading, handleStartEditing, tableAutoHeight, indexField, defaultValues, isRowEditing, }) => {
|
|
21
21
|
const { rawDeleteData, rawUpdateDataBySchema, exportExcelData } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
22
22
|
const handleAddItems = (n = 1) => {
|
|
23
23
|
const newRows = [];
|
|
@@ -27,25 +27,19 @@ const useDataGridActions = ({ apiRef, model, schema, emptyItem, dataGrid, setSel
|
|
|
27
27
|
apiRef.current.updateRows([newRow]);
|
|
28
28
|
newRows.push(newRow);
|
|
29
29
|
}
|
|
30
|
-
const
|
|
31
|
-
? [...
|
|
32
|
-
: [...newRows, ...
|
|
33
|
-
|
|
34
|
-
onDataChange(newData);
|
|
35
|
-
}
|
|
30
|
+
const newDataGridRows = tableAutoHeight
|
|
31
|
+
? [...dataGridRows, ...newRows]
|
|
32
|
+
: [...newRows, ...dataGridRows];
|
|
33
|
+
setDataGridRows(newDataGridRows);
|
|
36
34
|
let fieldToFocus = indexField;
|
|
37
35
|
if (!fieldToFocus) {
|
|
38
36
|
const visibleColumns = apiRef.current.getAllColumns();
|
|
39
37
|
const firstEditableCol = visibleColumns.find((col) => col.editable && col.field !== 'actions');
|
|
40
38
|
fieldToFocus = firstEditableCol === null || firstEditableCol === void 0 ? void 0 : firstEditableCol.field;
|
|
41
39
|
}
|
|
42
|
-
(0, utils_2.
|
|
40
|
+
(0, utils_2.scrollToNewRow)(apiRef, tableAutoHeight);
|
|
43
41
|
apiRef.current.startRowEditMode({ id: newRows[0].id, fieldToFocus });
|
|
44
42
|
handleStartEditing(newRows[0].id);
|
|
45
|
-
// apiRef.current.setCellFocus(newRows[0].id, fieldToFocus);
|
|
46
|
-
// if (!tableAutoHeight) {
|
|
47
|
-
// apiRef.current.scrollToIndexes({ rowIndex: 0 });
|
|
48
|
-
// }
|
|
49
43
|
};
|
|
50
44
|
const handleAddItem = () => {
|
|
51
45
|
if (isRowEditing) {
|
|
@@ -61,19 +55,13 @@ const useDataGridActions = ({ apiRef, model, schema, emptyItem, dataGrid, setSel
|
|
|
61
55
|
}
|
|
62
56
|
const id = (0, utils_1.getTmpId)();
|
|
63
57
|
const newRow = Object.assign(Object.assign(Object.assign({}, emptyItem), defaultValues), { id });
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const visibleColumns = apiRef.current.getAllColumns();
|
|
72
|
-
const firstEditableCol = visibleColumns.find((col) => col.editable && col.field !== 'actions');
|
|
73
|
-
fieldToFocus = firstEditableCol === null || firstEditableCol === void 0 ? void 0 : firstEditableCol.field;
|
|
74
|
-
}
|
|
75
|
-
apiRef.current.startRowEditMode({ id, fieldToFocus });
|
|
76
|
-
(0, utils_2.scrollToEnd)(apiRef);
|
|
58
|
+
(0, utils_2.addNewRow)({
|
|
59
|
+
newRow,
|
|
60
|
+
indexField,
|
|
61
|
+
tableAutoHeight,
|
|
62
|
+
apiRef,
|
|
63
|
+
setDataGridRows,
|
|
64
|
+
});
|
|
77
65
|
handleStartEditing(id);
|
|
78
66
|
// apiRef.current.setCellFocus(id, fieldToFocus);
|
|
79
67
|
// if (!tableAutoHeight) {
|
|
@@ -95,16 +83,11 @@ const useDataGridActions = ({ apiRef, model, schema, emptyItem, dataGrid, setSel
|
|
|
95
83
|
const results = yield Promise.all(promises);
|
|
96
84
|
setSelectionModel([]);
|
|
97
85
|
setSelectionModelIds([]);
|
|
98
|
-
const updatedData =
|
|
86
|
+
const updatedData = dataGridRows.map((item) => {
|
|
99
87
|
const index = ids.indexOf(item.id);
|
|
100
|
-
if (index !== -1) {
|
|
101
|
-
apiRef.current.updateRows([newData[index]]);
|
|
102
|
-
}
|
|
103
88
|
return index === -1 ? item : newData[index];
|
|
104
89
|
});
|
|
105
|
-
|
|
106
|
-
onDataChange(updatedData);
|
|
107
|
-
}
|
|
90
|
+
setDataGridRows(updatedData);
|
|
108
91
|
setSnackBar({
|
|
109
92
|
open: true,
|
|
110
93
|
severity: 'success',
|
|
@@ -121,16 +104,13 @@ const useDataGridActions = ({ apiRef, model, schema, emptyItem, dataGrid, setSel
|
|
|
121
104
|
const promises = [];
|
|
122
105
|
ids.map((id) => {
|
|
123
106
|
promises.push(rawDeleteData(model, id));
|
|
124
|
-
apiRef.current.updateRows([{ id, _action: 'delete' }]);
|
|
125
107
|
});
|
|
126
108
|
setDataGridLoading(true);
|
|
127
109
|
const results = yield Promise.all(promises);
|
|
128
110
|
setSelectionModel([]);
|
|
129
111
|
setSelectionModelIds([]);
|
|
130
|
-
const newData =
|
|
131
|
-
|
|
132
|
-
onDataChange(newData);
|
|
133
|
-
}
|
|
112
|
+
const newData = dataGridRows.filter(({ id }) => !ids.includes(id));
|
|
113
|
+
setDataGridRows(newData);
|
|
134
114
|
setDataGridLoading(false);
|
|
135
115
|
setSnackBar({
|
|
136
116
|
open: true,
|
|
@@ -17,16 +17,13 @@ interface UseProcessRowUpdateProps<T extends TField = void> {
|
|
|
17
17
|
addExistingModel?: string;
|
|
18
18
|
updateOptionsAC: () => Promise<void>;
|
|
19
19
|
apiRef: RefObject<GridApiCommunity>;
|
|
20
|
-
|
|
21
|
-
data: Item<T>[];
|
|
22
|
-
};
|
|
23
|
-
onDataChange?: (p: Item<T>[]) => void;
|
|
20
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
24
21
|
onProcessRow?: (p: Item<T>) => void;
|
|
25
22
|
handleStopEditing: () => void;
|
|
26
23
|
extraValidators?: ExtraValidators<T>;
|
|
27
24
|
onEditModel?: (p: OnEditModelType<T>) => void;
|
|
28
25
|
}
|
|
29
|
-
export declare const useProcessRowUpdate: <T extends TField = void>({ preparedColumns, yupValidationSchema, setDataGridLoading, indexField, processingRow, setValidationErrors, modelParent, modelParentId, model, schema, addExistingModel, updateOptionsAC, apiRef,
|
|
26
|
+
export declare const useProcessRowUpdate: <T extends TField = void>({ preparedColumns, yupValidationSchema, setDataGridLoading, indexField, processingRow, setValidationErrors, modelParent, modelParentId, model, schema, addExistingModel, updateOptionsAC, apiRef, setDataGridRows, onProcessRow, handleStopEditing, }: UseProcessRowUpdateProps<T>) => {
|
|
30
27
|
processRowUpdate: (editedRow: Item<T>, originalRow: Item<T>) => Promise<any>;
|
|
31
28
|
};
|
|
32
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProcessRowUpdate.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useProcessRowUpdate.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AAUzB,UAAU,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACxD,eAAe,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IACxD,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CACjC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAChE,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,uPAkB1D,wBAAwB,CAAC,CAAC,CAAC;kCAEe,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;CAsMzE,CAAC"}
|
|
@@ -16,11 +16,12 @@ exports.useProcessRowUpdate = void 0;
|
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
17
|
const utils_1 = require("../../../utils");
|
|
18
18
|
const APIWrapperContext_1 = require("../../../context/APIWrapperContext");
|
|
19
|
+
const utils_2 = require("../utils");
|
|
19
20
|
// import { buildEditPath } from '../utils'; // TODO: Check Why it is missing here
|
|
20
21
|
function isYupValidationError(err) {
|
|
21
22
|
return err instanceof Error && err.name === 'ValidationError';
|
|
22
23
|
}
|
|
23
|
-
const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGridLoading, indexField, processingRow, setValidationErrors, modelParent, modelParentId, model, schema, addExistingModel, updateOptionsAC, apiRef,
|
|
24
|
+
const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGridLoading, indexField, processingRow, setValidationErrors, modelParent, modelParentId, model, schema, addExistingModel, updateOptionsAC, apiRef, setDataGridRows, onProcessRow, handleStopEditing,
|
|
24
25
|
// extraValidators, // TODO: Check why this is missing
|
|
25
26
|
}) => {
|
|
26
27
|
const { onEditRelatedModelSave, onEditModelDataGridSave } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
@@ -32,7 +33,7 @@ const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGrid
|
|
|
32
33
|
console.log('No changes detected, skipping save.');
|
|
33
34
|
handleStopEditing();
|
|
34
35
|
if ((0, utils_1.isTmpId)(editedRow.id)) {
|
|
35
|
-
|
|
36
|
+
(0, utils_2.deleteRow)({ id: editedRow.id, apiRef, setDataGridRows });
|
|
36
37
|
throw new Error('CANCEL_TMP_ROW');
|
|
37
38
|
}
|
|
38
39
|
return editedRow;
|
|
@@ -132,21 +133,16 @@ const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGrid
|
|
|
132
133
|
return newState;
|
|
133
134
|
});
|
|
134
135
|
updateOptionsAC();
|
|
135
|
-
const data = [...dataGrid.data];
|
|
136
136
|
const newRow = 'data' in response && 'schema' in response ? response.data : response;
|
|
137
|
-
for (const i in data) {
|
|
138
|
-
if (data[i].id === editedRow.id) {
|
|
139
|
-
data[i] = newRow;
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (onDataChange) {
|
|
144
|
-
onDataChange(data);
|
|
145
|
-
}
|
|
146
137
|
if (onProcessRow) {
|
|
147
138
|
onProcessRow(newRow);
|
|
148
139
|
}
|
|
149
|
-
|
|
140
|
+
(0, utils_2.updateRow)({
|
|
141
|
+
newRow,
|
|
142
|
+
apiRef,
|
|
143
|
+
originalId: editedRow.id,
|
|
144
|
+
setDataGridRows,
|
|
145
|
+
});
|
|
150
146
|
setDataGridLoading(false);
|
|
151
147
|
handleStopEditing();
|
|
152
148
|
return newRow;
|
|
@@ -188,21 +184,16 @@ const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGrid
|
|
|
188
184
|
return newState;
|
|
189
185
|
});
|
|
190
186
|
updateOptionsAC();
|
|
191
|
-
const data = [...dataGrid.data];
|
|
192
187
|
const newRow = 'data' in response && 'schema' in response ? response.data : response;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
if (onDataChange) {
|
|
200
|
-
onDataChange(data);
|
|
201
|
-
}
|
|
188
|
+
(0, utils_2.updateRow)({
|
|
189
|
+
newRow,
|
|
190
|
+
originalId: editedRow.id,
|
|
191
|
+
apiRef,
|
|
192
|
+
setDataGridRows,
|
|
193
|
+
});
|
|
202
194
|
if (onProcessRow) {
|
|
203
195
|
onProcessRow(newRow);
|
|
204
196
|
}
|
|
205
|
-
apiRef.current.updateRows([newRow]);
|
|
206
197
|
setDataGridLoading(false);
|
|
207
198
|
handleStopEditing();
|
|
208
199
|
return newRow;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
2
|
import { GridApiCommunity } from '@mui/x-data-grid/models/api/gridApiCommunity';
|
|
3
|
-
import { GridEnrichedBySchemaColDef, Id } from '../../@types';
|
|
3
|
+
import { FieldKey, GridEnrichedBySchemaColDef, Id, Item, TField } from '../../@types';
|
|
4
4
|
export type ResizeType = 'condense' | 'maxContent' | 'fitScreen';
|
|
5
5
|
/**
|
|
6
6
|
*
|
|
@@ -15,5 +15,24 @@ export declare const quantityOnlyOperators: ({ type }: {
|
|
|
15
15
|
}) => GridFilterOperator[];
|
|
16
16
|
export declare const buildEditPath: (basePath: string, objId: Id) => string;
|
|
17
17
|
export declare const buildExitPath: (basePath: string, objId?: Id) => string;
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const scrollToNewRow: (apiRef: RefObject<GridApiCommunity>, tableAutoHeight?: boolean) => void;
|
|
19
|
+
export declare function addNewRow<T extends TField = void>({ newRow, indexField, tableAutoHeight, apiRef, setDataGridRows, }: {
|
|
20
|
+
newRow: Item<T>;
|
|
21
|
+
indexField?: FieldKey<T>;
|
|
22
|
+
tableAutoHeight?: boolean;
|
|
23
|
+
apiRef: RefObject<GridApiCommunity>;
|
|
24
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
25
|
+
}): void;
|
|
26
|
+
export declare function updateRow<T extends TField = void>({ newRow, setDataGridRows, originalId, apiRef, }: {
|
|
27
|
+
newRow: Item<T>;
|
|
28
|
+
originalId?: Id;
|
|
29
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
30
|
+
apiRef: RefObject<GridApiCommunity>;
|
|
31
|
+
}): void;
|
|
32
|
+
export declare function deleteRow<T extends TField = void>({ id, apiRef, setDataGridRows, }: {
|
|
33
|
+
id: Id;
|
|
34
|
+
apiRef: RefObject<GridApiCommunity>;
|
|
35
|
+
setDataGridRows: (value: React.SetStateAction<Item<T>[]>) => void;
|
|
36
|
+
}): void;
|
|
37
|
+
export declare function getAllRowIds(apiRef: RefObject<GridApiCommunity>): unknown[];
|
|
19
38
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAoCtF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,0BAA0B,EAAE,EACrC,UAAU,EAAE,UAAU,GACrB,0BAA0B,EAAE,CAmB9B;AAED,eAAO,MAAM,qBAAqB,GAAI,UAAU;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,yBA8B/D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,OAAO,EAAE,WAKxD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,QAAQ,EAAE,WAKzD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,OAAO,SAY5F,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EACjD,MAAM,EACN,UAAU,EACV,eAAe,EACf,MAAM,EACN,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CACnE,QAkBA;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EACjD,MAAM,EACN,eAAe,EACf,UAAU,EACV,MAAM,GACP,EAAE;IACD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,UAAU,CAAC,EAAE,EAAE,CAAC;IAChB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAClE,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACrC,QAqCA;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EACjD,EAAE,EACF,MAAM,EACN,eAAe,GAChB,EAAE;IACD,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CACnE,QAGA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,aAM/D"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.scrollToNewRow = exports.buildExitPath = exports.buildEditPath = exports.quantityOnlyOperators = void 0;
|
|
4
4
|
exports.resizeColumns = resizeColumns;
|
|
5
|
+
exports.addNewRow = addNewRow;
|
|
6
|
+
exports.updateRow = updateRow;
|
|
7
|
+
exports.deleteRow = deleteRow;
|
|
8
|
+
exports.getAllRowIds = getAllRowIds;
|
|
5
9
|
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
6
10
|
const InputInterval_1 = require("./InputInterval");
|
|
7
11
|
/**
|
|
@@ -109,12 +113,66 @@ const buildExitPath = (basePath, objId) => {
|
|
|
109
113
|
return basePath;
|
|
110
114
|
};
|
|
111
115
|
exports.buildExitPath = buildExitPath;
|
|
112
|
-
const
|
|
116
|
+
const scrollToNewRow = (apiRef, tableAutoHeight) => {
|
|
113
117
|
setTimeout(() => {
|
|
118
|
+
if (!tableAutoHeight) {
|
|
119
|
+
apiRef.current.scrollToIndexes({ rowIndex: 0 });
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
114
122
|
const rowCount = apiRef.current.getRowsCount();
|
|
115
123
|
apiRef.current.scrollToIndexes({
|
|
116
124
|
rowIndex: rowCount - 1,
|
|
117
125
|
});
|
|
118
126
|
}, 500);
|
|
119
127
|
};
|
|
120
|
-
exports.
|
|
128
|
+
exports.scrollToNewRow = scrollToNewRow;
|
|
129
|
+
function addNewRow({ newRow, indexField, tableAutoHeight, apiRef, setDataGridRows, }) {
|
|
130
|
+
apiRef.current.updateRows([newRow]);
|
|
131
|
+
let fieldToFocus = indexField;
|
|
132
|
+
if (!fieldToFocus) {
|
|
133
|
+
const visibleColumns = apiRef.current.getAllColumns();
|
|
134
|
+
const firstEditableCol = visibleColumns.find((col) => col.editable && col.field !== 'actions');
|
|
135
|
+
fieldToFocus = firstEditableCol === null || firstEditableCol === void 0 ? void 0 : firstEditableCol.field;
|
|
136
|
+
}
|
|
137
|
+
apiRef.current.startRowEditMode({ id: newRow.id, fieldToFocus });
|
|
138
|
+
(0, exports.scrollToNewRow)(apiRef, tableAutoHeight);
|
|
139
|
+
setDataGridRows((currentRows) => tableAutoHeight ? [...currentRows, newRow] : [newRow, ...currentRows]);
|
|
140
|
+
}
|
|
141
|
+
function updateRow({ newRow, setDataGridRows, originalId, apiRef, }) {
|
|
142
|
+
const ids = getAllRowIds(apiRef);
|
|
143
|
+
const exists = ids.includes(newRow.id);
|
|
144
|
+
apiRef.current.updateRows([newRow]);
|
|
145
|
+
const idToRemove = originalId && originalId !== newRow.id && ids.includes(originalId) ? originalId : undefined;
|
|
146
|
+
if (exists) {
|
|
147
|
+
if (idToRemove) {
|
|
148
|
+
// Remove idToRemove and replace existing newRow.id with newRow:
|
|
149
|
+
apiRef.current.updateRows([{ id: idToRemove, _action: 'delete' }]);
|
|
150
|
+
setDataGridRows((currentRows) => currentRows
|
|
151
|
+
.filter(({ id }) => id !== idToRemove)
|
|
152
|
+
.map((currentRow) => (currentRow.id === newRow.id ? newRow : currentRow)));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// Only replace existing newRow.id with newRow:
|
|
156
|
+
setDataGridRows((currentRows) => currentRows.map((currentRow) => (currentRow.id === newRow.id ? newRow : currentRow)));
|
|
157
|
+
}
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Add new row in the exact same index where there was the idToRemove:
|
|
161
|
+
if (idToRemove) {
|
|
162
|
+
setDataGridRows((currentRows) => currentRows.map((currentRow) => (currentRow.id === idToRemove ? newRow : currentRow)));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Add absolutely new row:
|
|
166
|
+
setDataGridRows((currentRows) => [...currentRows, newRow]);
|
|
167
|
+
}
|
|
168
|
+
function deleteRow({ id, apiRef, setDataGridRows, }) {
|
|
169
|
+
apiRef.current.updateRows([{ id, _action: 'delete' }]);
|
|
170
|
+
setDataGridRows((currentRows) => currentRows.filter((item) => item.id !== id));
|
|
171
|
+
}
|
|
172
|
+
function getAllRowIds(apiRef) {
|
|
173
|
+
if (!apiRef.current.getRowModels) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
const rowModels = apiRef.current.getRowModels();
|
|
177
|
+
return Array.from(rowModels.keys());
|
|
178
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridBySchemaEditable.d.ts","sourceRoot":"","sources":["../../src/components/DataGridBySchemaEditable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+B,YAAY,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMtD,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACR,sBAAsB,EACtB,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,eAAe,EAAiB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"DataGridBySchemaEditable.d.ts","sourceRoot":"","sources":["../../src/components/DataGridBySchemaEditable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
|
55
55
|
const ConfirmDialog_1 = require("./DataGridBySchemaEditable/ConfirmDialog");
|
|
56
56
|
const DataGridDesktop_1 = __importDefault(require("./DataGridBySchemaEditable/DataGridDesktop"));
|
|
57
57
|
const DataGridMobile_1 = __importDefault(require("./DataGridBySchemaEditable/DataGridMobile"));
|
|
58
|
+
const utils_2 = require("./DataGridBySchemaEditable/utils");
|
|
58
59
|
function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnVisibilityModel, model, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', indexFieldViewBasePath, stateToLink = {}, minWidth = 80, loading, modelParent, modelParentId, customColumnOperations, customFieldFormLayouts, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable = false, hasBulkSelect = false, onSelectActions, isAutoHeight = false, defaultValues, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions = ['editInline', 'remove'], customActions, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, optionsAC, extraValidators, MobileListRenderItem, MobileRenderNoResults, }) {
|
|
59
60
|
const wrapperRef = (0, react_1.useRef)(null);
|
|
60
61
|
const { isMobile, onDeleteModel, onDeleteRelatedModel } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
@@ -65,9 +66,7 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
65
66
|
};
|
|
66
67
|
const [snackBar, setSnackBar] = (0, react_1.useState)(initialSnackBar);
|
|
67
68
|
const apiRef = (0, x_data_grid_1.useGridApiRef)();
|
|
68
|
-
const [
|
|
69
|
-
data: [],
|
|
70
|
-
});
|
|
69
|
+
const [dataGridRows, setDataGridRows] = (0, react_1.useState)([]);
|
|
71
70
|
const [confirmDialogOpen, setConfirmDialogOpen] = (0, react_1.useState)(false);
|
|
72
71
|
const [emptyItem, setEmptyItem] = (0, react_1.useState)({});
|
|
73
72
|
const yupValidationSchema = (0, react_1.useRef)(null);
|
|
@@ -80,7 +79,6 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
80
79
|
setConfirmDialogOpen(false);
|
|
81
80
|
return;
|
|
82
81
|
}
|
|
83
|
-
const newData = dataGrid.data.filter((row) => row.id !== idToRemove.current);
|
|
84
82
|
if (modelParent && modelParentId) {
|
|
85
83
|
yield onDeleteRelatedModel({
|
|
86
84
|
model: modelParent,
|
|
@@ -88,11 +86,7 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
88
86
|
relatedModel: model,
|
|
89
87
|
relatedModelId: idToRemove.current,
|
|
90
88
|
});
|
|
91
|
-
|
|
92
|
-
// Reflect changes to the outside, for example for doing global calculations over multiple rows:
|
|
93
|
-
if (onDataChange) {
|
|
94
|
-
onDataChange(newData);
|
|
95
|
-
}
|
|
89
|
+
(0, utils_2.deleteRow)({ id: idToRemove.current, apiRef, setDataGridRows });
|
|
96
90
|
}
|
|
97
91
|
idToRemove.current = null;
|
|
98
92
|
setConfirmDialogOpen(false);
|
|
@@ -100,12 +94,7 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
100
94
|
const handleDeleteClick = (id) => {
|
|
101
95
|
if (!modelParent || !modelParentId) {
|
|
102
96
|
onDeleteModel(model, id, () => {
|
|
103
|
-
|
|
104
|
-
apiRef.current.updateRows([{ id, _action: 'delete' }]);
|
|
105
|
-
// Reflect changes to the outside, for example for doing global calculations over multiple rows:
|
|
106
|
-
if (onDataChange) {
|
|
107
|
-
onDataChange(newData);
|
|
108
|
-
}
|
|
97
|
+
(0, utils_2.deleteRow)({ id, apiRef, setDataGridRows });
|
|
109
98
|
});
|
|
110
99
|
return;
|
|
111
100
|
}
|
|
@@ -114,7 +103,7 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
114
103
|
};
|
|
115
104
|
(0, react_1.useEffect)(() => {
|
|
116
105
|
if (!columns) {
|
|
117
|
-
|
|
106
|
+
setDataGridRows([]);
|
|
118
107
|
return;
|
|
119
108
|
}
|
|
120
109
|
const newEmptyItem = {};
|
|
@@ -145,31 +134,35 @@ function DataGridBySchemaEditable({ schema, data, rowCount = 0, columns, columnV
|
|
|
145
134
|
extraValidators: extraValidators,
|
|
146
135
|
uiFields: columns.map(({ field }) => field),
|
|
147
136
|
});
|
|
148
|
-
|
|
149
|
-
data,
|
|
150
|
-
});
|
|
137
|
+
setDataGridRows(data);
|
|
151
138
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
152
139
|
}, [data]);
|
|
153
140
|
// Accessibility requirement for DataGrid access with screenreader:
|
|
141
|
+
// useEffect(() => {
|
|
142
|
+
// const applyAria = () => {
|
|
143
|
+
// const scroller = wrapperRef.current?.querySelector('.MuiDataGrid-virtualScroller');
|
|
144
|
+
// if (scroller && scroller.getAttribute('role') !== 'region') {
|
|
145
|
+
// scroller.setAttribute('role', 'rowgroup');
|
|
146
|
+
// scroller.setAttribute('aria-label', 'Conteúdo rolável da tabela');
|
|
147
|
+
// scroller.setAttribute('tabindex', '0');
|
|
148
|
+
// }
|
|
149
|
+
// };
|
|
150
|
+
// applyAria();
|
|
151
|
+
// const observer = new MutationObserver(applyAria);
|
|
152
|
+
// if (wrapperRef.current) {
|
|
153
|
+
// observer.observe(wrapperRef.current, { childList: true, subtree: true });
|
|
154
|
+
// }
|
|
155
|
+
// return () => observer.disconnect();
|
|
156
|
+
// }, []);
|
|
157
|
+
// Reflect changes to the outside, for example for doing global calculations over multiple rows:
|
|
154
158
|
(0, react_1.useEffect)(() => {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (scroller && scroller.getAttribute('role') !== 'region') {
|
|
159
|
-
scroller.setAttribute('role', 'rowgroup');
|
|
160
|
-
scroller.setAttribute('aria-label', 'Conteúdo rolável da tabela');
|
|
161
|
-
scroller.setAttribute('tabindex', '0');
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
applyAria();
|
|
165
|
-
const observer = new MutationObserver(applyAria);
|
|
166
|
-
if (wrapperRef.current) {
|
|
167
|
-
observer.observe(wrapperRef.current, { childList: true, subtree: true });
|
|
159
|
+
const hasTmpIds = (0, utils_2.getAllRowIds)(apiRef).find((currentId) => (0, utils_1.isTmpId)(currentId));
|
|
160
|
+
if (onDataChange && !hasTmpIds) {
|
|
161
|
+
onDataChange(dataGridRows);
|
|
168
162
|
}
|
|
169
|
-
|
|
170
|
-
}, []);
|
|
163
|
+
}, [dataGridRows, apiRef, onDataChange]);
|
|
171
164
|
return (react_1.default.createElement(Box_1.default, { sx: { height: '100%', width: '100%', maxWidth: '100%' }, ref: !isMobile || !MobileListRenderItem ? wrapperRef : undefined },
|
|
172
|
-
isMobile && MobileListRenderItem ? (react_1.default.createElement(DataGridMobile_1.default, { name: name, data: data, schema: schema, columns: columns, customColumnOperations: customColumnOperations, MobileListRenderItem: MobileListRenderItem, MobileRenderNoResults: MobileRenderNoResults, hideQuickFilterBar: hideQuickFilterBar, paginationModel: paginationModel, setPaginationModel: setPaginationModel, rowCount: rowCount })) : (react_1.default.createElement(DataGridDesktop_1.default, { schema: schema, apiRef: apiRef,
|
|
165
|
+
isMobile && MobileListRenderItem ? (react_1.default.createElement(DataGridMobile_1.default, { name: name, data: data, schema: schema, columns: columns, customColumnOperations: customColumnOperations, MobileListRenderItem: MobileListRenderItem, MobileRenderNoResults: MobileRenderNoResults, hideQuickFilterBar: hideQuickFilterBar, paginationModel: paginationModel, setPaginationModel: setPaginationModel, rowCount: rowCount })) : (react_1.default.createElement(DataGridDesktop_1.default, { schema: schema, apiRef: apiRef, dataGridRows: dataGridRows, setDataGridRows: setDataGridRows, rowCount: rowCount, columns: columns, columnVisibilityModel: columnVisibilityModel, model: model, name: name, indexField: indexField, addExistingModel: addExistingModel, indexFieldMinWidth: indexFieldMinWidth, indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, stateToLink: stateToLink, minWidth: minWidth, loading: loading, modelParentId: modelParentId, modelParent: modelParent, customColumnOperations: customColumnOperations, customFieldFormLayouts: customFieldFormLayouts, customLinkDestination: customLinkDestination, LinkComponent: LinkComponent, onProcessRow: onProcessRow, onEditModel: onEditModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onSelectActions: onSelectActions, isAutoHeight: isAutoHeight, defaultValues: defaultValues, hideFooterPagination: hideFooterPagination, setVisibleRows: setVisibleRows, paginationModel: paginationModel, setPaginationModel: setPaginationModel, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, tableAutoHeight: tableAutoHeight, actions: actions, customActions: customActions, hideColumnsButton: hideColumnsButton, hideFilterButton: hideFilterButton, hideDensityButton: hideDensityButton, hideExportButton: hideExportButton, hideQuickFilterBar: hideQuickFilterBar, optionsAC: optionsAC, extraValidators: extraValidators, emptyItem: emptyItem, handleDeleteClick: handleDeleteClick, setSnackBar: setSnackBar, yupValidationSchema: yupValidationSchema.current })),
|
|
173
166
|
react_1.default.createElement(ConfirmDialog_1.ConfirmDialog, { open: confirmDialogOpen, onClose: handleConfirmDialogClose, onConfirm: handleDeleteRelatedSave }),
|
|
174
167
|
react_1.default.createElement(Snackbar_1.default, { open: snackBar.open, autoHideDuration: 5000, onClose: () => {
|
|
175
168
|
setSnackBar(Object.assign(Object.assign({}, initialSnackBar), { open: false }));
|
|
@@ -14,7 +14,6 @@ export interface GenericModelListProps<T extends TField = void> {
|
|
|
14
14
|
addExistingModel?: string;
|
|
15
15
|
onProcessRow?: (p: Item<T>) => void;
|
|
16
16
|
onDataChange?: (p: Item<T>[]) => void;
|
|
17
|
-
reloadAfterRowUpdate?: boolean;
|
|
18
17
|
customColumnOperations?: CustomColumnOperations<T>;
|
|
19
18
|
customFieldFormLayouts?: CustomFormFieldLayouts<T>;
|
|
20
19
|
customLinkDestination?: (p: GridRenderCellParams) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericModelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuB,YAAY,EAAwB,MAAM,OAAO,CAAC;AAQvF,OAAO,EAEL,eAAe,EACf,oBAAoB,EAErB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAIL,UAAU,EACV,IAAI,EACJ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACR,sBAAsB,EAEtB,cAAc,EACd,SAAS,EACT,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAC;AAKnB,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"GenericModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericModelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ const styles_1 = require("../styles");
|
|
|
60
60
|
const utils_1 = require("../utils");
|
|
61
61
|
const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
|
|
62
62
|
const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
63
|
-
function GenericModelList({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, onDataChange,
|
|
63
|
+
function GenericModelList({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, onDataChange, customColumnOperations, customFieldFormLayouts, customLinkDestination, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight = true, LinkComponent = null, hasHeader, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, tableAutoHeight, actions, customActions, optionsAC, defaultValues, disableScreenLoading, extraValidators, reloadStateStamp, MobileListRenderItem, MobileRenderNoResults, }) {
|
|
64
64
|
const { isInBatches, firstBatchLength } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
65
65
|
const { getGenericModelList, onEditModel, isMobile } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
66
66
|
const [data, setData] = (0, react_1.useState)(false);
|
|
@@ -157,6 +157,14 @@ function GenericModelList({ model, columnFields, hiddenFields, creatableFields,
|
|
|
157
157
|
queryParams,
|
|
158
158
|
sumRows,
|
|
159
159
|
]);
|
|
160
|
+
const onDataChangeLocal = (0, react_1.useCallback)((newData) => {
|
|
161
|
+
if (!data) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (onDataChange) {
|
|
165
|
+
onDataChange(newData);
|
|
166
|
+
}
|
|
167
|
+
}, [data]);
|
|
160
168
|
(0, react_1.useEffect)(() => {
|
|
161
169
|
loadObjectList();
|
|
162
170
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -167,12 +175,6 @@ function GenericModelList({ model, columnFields, hiddenFields, creatableFields,
|
|
|
167
175
|
}
|
|
168
176
|
setPaginationModel(Object.assign(Object.assign({}, paginationModel), { queryParams }));
|
|
169
177
|
}, [queryParams, paginationModel]);
|
|
170
|
-
// useEffect(() => {
|
|
171
|
-
// if (paginationMode === 'server') {
|
|
172
|
-
// loadObjectList();
|
|
173
|
-
// }
|
|
174
|
-
// // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
175
|
-
// }, [paginationModel]);
|
|
176
178
|
return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
177
179
|
data.data.length > 0 && isMobile && MobileListRenderItem && (react_1.default.createElement(react_1.default.Fragment, null, paginationMode === 'client' ? (react_1.default.createElement(DataTotals_1.default, { schema: data.schema, data: data.data, sumRows: sumRows, visibleRows: visibleRows })) : (react_1.default.createElement(DataTotalsServer_1.default, { schema: data.schema, sumRows: sumRows, totals: data.sumRowsTotals })))),
|
|
178
180
|
hasHeader && (react_1.default.createElement(Box_1.default, { sx: Object.assign(Object.assign({}, styles_1.Layout.flexRowGrow), { mb: 2 }) },
|
|
@@ -181,16 +183,7 @@ function GenericModelList({ model, columnFields, hiddenFields, creatableFields,
|
|
|
181
183
|
react_1.default.createElement(LinkComponent, { to: `novo` },
|
|
182
184
|
react_1.default.createElement(Button_1.default, { variant: "contained", size: "medium", sx: { alignSelf: 'stretch' }, startIcon: react_1.default.createElement(AddCircleOutline_1.default, null) }, "Adicionar")))))),
|
|
183
185
|
react_1.default.createElement(Box_1.default, { sx: tableAutoHeight ? {} : styles_1.Layout.dataGridWithTabs },
|
|
184
|
-
react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, columnVisibilityModel: columnVisibilityModel, schema: data.schema || {}, model: model, loading: loading, indexField: indexField, indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onSelectActions: onSelectActions, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, customFieldFormLayouts: customFieldFormLayouts, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, hideColumnsButton: hideColumnsButton, hideFilterButton: hideFilterButton, hideDensityButton: hideDensityButton, hideExportButton: hideExportButton, hideQuickFilterBar: hideQuickFilterBar, customLinkDestination: customLinkDestination, actions: actions, customActions: customActions, optionsAC: optionsAC, defaultValues: defaultValues, onProcessRow: onProcessRow, onDataChange:
|
|
185
|
-
if (reloadAfterRowUpdate) {
|
|
186
|
-
loadObjectList();
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
if (onDataChange) {
|
|
190
|
-
onDataChange(newData);
|
|
191
|
-
}
|
|
192
|
-
setData(Object.assign(Object.assign({}, data), { data: newData }));
|
|
193
|
-
}, LinkComponent: LinkComponent || undefined, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
|
|
186
|
+
react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, columnVisibilityModel: columnVisibilityModel, schema: data.schema || {}, model: model, loading: loading, indexField: indexField, indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onSelectActions: onSelectActions, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, customFieldFormLayouts: customFieldFormLayouts, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, hideColumnsButton: hideColumnsButton, hideFilterButton: hideFilterButton, hideDensityButton: hideDensityButton, hideExportButton: hideExportButton, hideQuickFilterBar: hideQuickFilterBar, customLinkDestination: customLinkDestination, actions: actions, customActions: customActions, optionsAC: optionsAC, defaultValues: defaultValues, onProcessRow: onProcessRow, onDataChange: onDataChangeLocal, LinkComponent: LinkComponent || undefined, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
|
|
194
187
|
? undefined
|
|
195
188
|
: typeof data.rowCount !== undefined
|
|
196
189
|
? data.rowCount
|
|
@@ -18,7 +18,6 @@ interface GenericRelatedModelListProps<T extends TField = void> {
|
|
|
18
18
|
label: string;
|
|
19
19
|
onProcessRow?: (p: Item<T>) => void;
|
|
20
20
|
onDataChange?: (p: Item<T>[]) => void;
|
|
21
|
-
reloadAfterRowUpdate?: boolean;
|
|
22
21
|
customColumnOperations?: CustomColumnOperations<T>;
|
|
23
22
|
customFieldFormLayouts?: CustomFormFieldLayouts<T>;
|
|
24
23
|
isEditable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRelatedModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuB,YAAY,EAAwB,MAAM,OAAO,CAAC;AAKvF,OAAO,EAA6B,eAAe,EAAa,MAAM,kBAAkB,CAAC;AAGzF,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,QAAQ,EACR,SAAS,EAET,EAAE,EACF,IAAI,EACJ,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,SAAS,EAET,WAAW,EACX,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAC;AAKnB,UAAU,4BAA4B,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"GenericRelatedModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
|
54
54
|
const utils_1 = require("../utils");
|
|
55
55
|
const styles_1 = require("../styles");
|
|
56
56
|
const GenericRelatedModelListTable_1 = __importDefault(require("./GenericRelatedModelListTable"));
|
|
57
|
-
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields = ['id'], creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, onDataChange,
|
|
57
|
+
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields = ['id'], creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, onDataChange, customColumnOperations, customFieldFormLayouts, isEditable = true, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, tableAutoHeight, actions, optionsAC, defaultValues, LinkComponent, extraValidators, reloadStateStamp, MobileListRenderItem, MobileRenderNoResults, }) {
|
|
58
58
|
const [data, setData] = (0, react_1.useState)(false);
|
|
59
59
|
const [visibleRows, setVisibleRows] = (0, react_1.useState)();
|
|
60
60
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
@@ -159,15 +159,10 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, hidden
|
|
|
159
159
|
if (!data) {
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
|
-
if (reloadAfterRowUpdate) {
|
|
163
|
-
loadObjectList();
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
162
|
if (onDataChange) {
|
|
167
163
|
onDataChange(newData);
|
|
168
164
|
}
|
|
169
|
-
|
|
170
|
-
}, [data, reloadAfterRowUpdate, onDataChange, loadObjectList]);
|
|
165
|
+
}, [data]);
|
|
171
166
|
(0, react_1.useEffect)(() => {
|
|
172
167
|
loadObjectList();
|
|
173
168
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
package/package.json
CHANGED