trithuc-mvc-react 1.6.7 → 1.6.8

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.
@@ -14,7 +14,7 @@ import TableToolbar from "./TableToolbar";
14
14
  import { useDataTable, usePermission } from "./hooks";
15
15
 
16
16
  const DataTable = () => {
17
- const { tableName, selectedField, columns, dataSearch, setOpenEditorDialog, setSelectedEditItem,setOpenViewDialog } = useDataTable();
17
+ const { tableName, selectedField, columns, dataSearch, setOpenEditorDialog, setSelectedEditItem, setOpenViewDialog, onEditClick } = useDataTable();
18
18
  const { setPermission, Permission } = usePermission();
19
19
  const queryClient = useQueryClient();
20
20
  const confirm = useConfirm();
@@ -80,7 +80,7 @@ const DataTable = () => {
80
80
  tableName
81
81
  });
82
82
  })
83
- .catch(() => {});
83
+ .catch(() => { });
84
84
  };
85
85
  const handleChangeStatus = (Id) => {
86
86
  changeStatusMutation.mutate({
@@ -91,6 +91,8 @@ const DataTable = () => {
91
91
  const handlEdit = (item) => {
92
92
  setOpenEditorDialog(true);
93
93
  setSelectedEditItem(item);
94
+ onEditClick(item);
95
+
94
96
  };
95
97
  const handlViewDetail = (item) => {
96
98
  setOpenViewDialog(true);
@@ -99,17 +101,17 @@ const DataTable = () => {
99
101
  const { rows, total } = useMemo(() => {
100
102
  let rows = data?.data ?? [];
101
103
  let total = data?.total ?? 0;
102
-
104
+
103
105
  return {
104
106
  rows: rows,
105
107
  total
106
108
  };
107
109
  }, [data]);
108
110
 
109
- useEffect(()=>{
111
+ useEffect(() => {
110
112
  let PermissionModel = data?.PermissionModel;
111
- PermissionModel&&setPermission(PermissionModel);
112
- },[rows])
113
+ PermissionModel && setPermission(PermissionModel);
114
+ }, [rows])
113
115
 
114
116
  const handleChangePage = (event, newPage) => {
115
117
  setPage(newPage);
@@ -151,7 +153,7 @@ const DataTable = () => {
151
153
  ids: selected
152
154
  });
153
155
  })
154
- .catch(() => {});
156
+ .catch(() => { });
155
157
  };
156
158
  const theme = useTheme();
157
159
  const downXL = useMediaQuery(theme.breakpoints.down("xl"));
@@ -184,7 +186,7 @@ const DataTable = () => {
184
186
  selected={isSelected(row[selectedField])}
185
187
  onSelect={handleSelect}
186
188
  onEdit={handlEdit}
187
- onViewDetail={handlViewDetail}
189
+ onView={handlViewDetail}
188
190
  onChangeStatus={handleChangeStatus}
189
191
  onDelete={handleDelete}
190
192
  />
@@ -115,7 +115,8 @@ function EditorForm({ fields, submitRef }) {
115
115
  keyLabel,
116
116
  keyValue,
117
117
  keyValueLabel,
118
- required
118
+ required,
119
+ disabled=false
119
120
  }) => {
120
121
  return (
121
122
  <Grid item md={size?.md} xs={size?.xs} sm={size?.sm} key={field}>
@@ -133,6 +134,7 @@ function EditorForm({ fields, submitRef }) {
133
134
  keyValue={keyValue}
134
135
  size={elementSize}
135
136
  required={required}
137
+ disabled={disabled}
136
138
  />
137
139
  </Grid>
138
140
  );
@@ -9,8 +9,8 @@ import { styled, useTheme } from "@mui/material/styles";
9
9
  import MoreMenu from "../MoreMenu";
10
10
  import { useMemo } from "react";
11
11
 
12
- export const TableRowRender = ({ index, row, selected, onSelect, onChangeStatus, onDelete, onEdit }) => {
13
- const { selectedField, columns, statusKey, disableStatus, tableActions,disableCellThaoTac } = useDataTable();
12
+ export const TableRowRender = ({ index, row, selected, onSelect, onChangeStatus, onDelete, onEdit, onView }) => {
13
+ const { selectedField, columns, statusKey, disableStatus, tableActions, disableCellThaoTac } = useDataTable();
14
14
  const { canEdit, canDelete, canView, canAction } = usePermission();
15
15
 
16
16
  const { tableActionsOnTable, tableActionsOnMoreMenu } = useMemo(() => {
@@ -27,8 +27,8 @@ export const TableRowRender = ({ index, row, selected, onSelect, onChangeStatus,
27
27
  const tableActionsOnMoreMenu = tableActionsAfterFilter.filter(({ isOnTable = false }) => !isOnTable);
28
28
  return { tableActionsOnTable, tableActionsOnMoreMenu };
29
29
  }, [canView, canAction, tableActions]);
30
- const theme = useTheme();
31
- const downXl = useMediaQuery(theme.breakpoints.down("xl"));
30
+ const theme = useTheme();
31
+ const downXl = useMediaQuery(theme.breakpoints.down("xl"));
32
32
  return (
33
33
  <TableRow hover key={row[selectedField]} selected={selected}>
34
34
  <TableCell padding="checkbox">
@@ -77,13 +77,13 @@ export const TableRowRender = ({ index, row, selected, onSelect, onChangeStatus,
77
77
  </IconButton>
78
78
  </Tooltip>
79
79
  )}
80
- {/* {canView && (
81
- <Tooltip title="Xem chi tiết">
82
- <IconButton onClick={() => onViewDetail(row)}>
80
+ {canView && !tableActions?.some(({ permissionType }) => permissionType == "view") && (
81
+ <Tooltip title="Xem chi tiết modal">
82
+ <IconButton onClick={() => onView(row)}>
83
83
  <RemoveRedEyeOutlinedIcon color="info" />
84
84
  </IconButton>
85
85
  </Tooltip>
86
- )} */}
86
+ )}
87
87
  {canDelete && (
88
88
  <Tooltip title="Xóa">
89
89
  <IconButton size={downXl ? "small" : "medium"}
@@ -13,7 +13,7 @@ import ViewDetailDialog from "./ViewDetailDialog";
13
13
 
14
14
  import ExportExcelButton from "./ExportExcelButton";
15
15
  import { FilterGod } from "./FilterGod";
16
- import { useDataTable } from "./hooks";
16
+
17
17
 
18
18
  DataManagement.propTypes = {
19
19
  columns: PropTypes.array,
@@ -57,8 +57,8 @@ function DataManagement({
57
57
  disableCellThaoTac = false,
58
58
  tableActions = [],
59
59
  disableEditor = false,
60
- onAddClick = () => {},
61
- onEditClick = () => {},
60
+ onAddClick = () => { },
61
+ onEditClick = () => { },
62
62
  tabPanel,
63
63
  backParentNavigator,
64
64
  slotProps = {
@@ -91,11 +91,7 @@ function DataManagement({
91
91
  return elementSize;
92
92
  }, [upXL]);
93
93
 
94
- useEffect(() => {
95
- if (selectedEditItem && disableEditor) {
96
- onEditClick(selectedEditItem);
97
- }
98
- }, [selectedEditItem]);
94
+
99
95
  useEffect(() => {
100
96
  setDataSearch({ ...dataSearch, ...defaults });
101
97
  }, [filters]);
@@ -109,6 +105,7 @@ function DataManagement({
109
105
  selectedEditItem,
110
106
  setSelectedEditItem,
111
107
  setOpenEditorDialog,
108
+ setOpenViewDialog,
112
109
  dataSearch,
113
110
  setDataSearch,
114
111
  validationSchema,
@@ -117,10 +114,9 @@ function DataManagement({
117
114
  disableCellThaoTac,
118
115
  disableAdd,
119
116
  tableActions,
120
- openViewDialog,
121
- setOpenViewDialog
117
+ onEditClick
122
118
  };
123
- }, [tableName, selectedField, columns, selectedEditItem, dataSearch, setDataSearch, validationSchema, tableActions, openViewDialog, setOpenViewDialog]);
119
+ }, [tableName, selectedField, columns, selectedEditItem, dataSearch, setDataSearch, validationSchema, tableActions, openViewDialog, setOpenViewDialog, onEditClick]);
124
120
  const permissionValues = useMemo(() => {
125
121
  return {
126
122
  Permission,
@@ -157,22 +153,22 @@ function DataManagement({
157
153
 
158
154
  <ExportExcelButton tableName={tableName} data={dataSearch} size={elementSize} />
159
155
  {(!Permission || Permission.Create) && (
160
- (!disableAdd) && (
161
- <Button
162
- size={elementSize}
163
- variant="contained"
164
- startIcon={<Add fontSize="inherit"/>}
165
- onClick={(e) => {
166
- if (!disableEditor) {
167
- setOpenEditorDialog(true);
168
- setSelectedEditItem(null);
169
- }
170
- onAddClick(e);
171
- }}
172
- >
173
- Thêm
174
- </Button>
175
- )
156
+ (!disableAdd) && (
157
+ <Button
158
+ size={elementSize}
159
+ variant="contained"
160
+ startIcon={<Add fontSize="inherit" />}
161
+ onClick={(e) => {
162
+ if (!disableEditor) {
163
+ setOpenEditorDialog(true);
164
+ setSelectedEditItem(null);
165
+ }
166
+ onAddClick(e);
167
+ }}
168
+ >
169
+ Thêm
170
+ </Button>
171
+ )
176
172
  )}
177
173
  </Stack>
178
174
  </Stack>
@@ -192,7 +188,7 @@ function DataManagement({
192
188
  fields={editorFields}
193
189
  />
194
190
  )}
195
- <ViewDetailDialog open={openViewDialog} onClose={() => setOpenViewDialog(false)} fields={editorFields} />
191
+ <ViewDetailDialog open={openViewDialog} onClose={() => setOpenViewDialog(false)} fields={editorFields} />
196
192
  </PermissionContext.Provider>
197
193
  </DataTableContext.Provider>
198
194
  </>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trithuc-mvc-react",
3
- "version": "1.6.7",
3
+ "version": "1.6.8",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"