trithuc-mvc-react 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ import { exportExcel } from "../../api";
3
3
  import { Button } from "@mui/material";
4
4
  import { Download } from "@mui/icons-material";
5
5
 
6
- const ExportExcelButton = ({ tableName, data }) => {
6
+ const ExportExcelButton = ({ tableName, data, size = "small" }) => {
7
7
  const handleExportExcel = async (tableName, data) => {
8
8
  const _data = await exportExcel({ tableName, data });
9
9
  if (_data.status) {
@@ -14,14 +14,15 @@ const ExportExcelButton = ({ tableName, data }) => {
14
14
  };
15
15
  return (
16
16
  <Button
17
+ size={size}
17
18
  variant="outlined"
18
19
  startIcon={<Download />}
19
20
  onClick={() => {
20
- handleExportExcel(tableName,data);
21
+ handleExportExcel(tableName, data);
21
22
  }}
22
23
  >
23
24
  Excel
24
25
  </Button>
25
26
  );
26
- }
27
- export default ExportExcelButton;
27
+ };
28
+ export default ExportExcelButton;
@@ -29,6 +29,7 @@ export function FilterElement({ name, type, label, keyValue, keyLabel, childrenF
29
29
 
30
30
  switch (type) {
31
31
  case "search":
32
+ console.log(size)
32
33
  return (
33
34
  <OutlinedInput
34
35
  {...rest}
@@ -5,7 +5,7 @@ import DateRangePicker from "../date/DateRangePicker";
5
5
  import { FilterElement } from "./FilterElement";
6
6
  import { useDataTable } from "./hooks";
7
7
 
8
- export const FilterGod = ({ filters, elementSize = "medium" }) => {
8
+ export const FilterGod = ({ filters, elementSize = "small" }) => {
9
9
  const { handleSubmit } = useFormContext();
10
10
  const onSubmit = (data) => console.log(data);
11
11
  const { setDataSearch, dataSearch } = useDataTable();
@@ -17,7 +17,7 @@ export const FilterGod = ({ filters, elementSize = "medium" }) => {
17
17
  onSubmit={handleSubmit(onSubmit)}
18
18
  sx={{
19
19
  px: 1,
20
- my: 2,
20
+ my: elementSize == "small" ? 0 : 2,
21
21
  display: "flex",
22
22
  alignItems: "center"
23
23
  }}
@@ -1,4 +1,4 @@
1
- import { Button, Card, IconButton, Stack, Tooltip, Typography } from "@mui/material";
1
+ import { Button, Card, IconButton, Stack, Tooltip, Typography, useTheme, useMediaQuery } from "@mui/material";
2
2
 
3
3
  import { useEffect, useMemo, useState } from "react";
4
4
 
@@ -12,6 +12,7 @@ import EditorDialog from "./EditorDialog";
12
12
 
13
13
  import ExportExcelButton from "./ExportExcelButton";
14
14
  import { FilterGod } from "./FilterGod";
15
+ import { useDataTable } from "./hooks";
15
16
 
16
17
  DataManagement.propTypes = {
17
18
  columns: PropTypes.array,
@@ -36,10 +37,10 @@ DataManagement.propTypes = {
36
37
  disableEditor: PropTypes.bool,
37
38
  onAddClick: PropTypes.func,
38
39
  onEditClick: PropTypes.func,
39
- tabPanel: PropTypes.node,
40
- filterSize: PropTypes.oneOf(["small", "medium"])
40
+ tabPanel: PropTypes.node
41
41
  };
42
42
 
43
+
43
44
  function DataManagement({
44
45
  columns = [],
45
46
  title,
@@ -55,7 +56,13 @@ function DataManagement({
55
56
  onAddClick = () => {},
56
57
  onEditClick = () => {},
57
58
  tabPanel,
58
- filterSize = "medium"
59
+ slotProps = {
60
+ header: {
61
+ sx: {
62
+
63
+ }
64
+ }
65
+ }
59
66
  }) {
60
67
  const [openEditorDialog, setOpenEditorDialog] = useState(false);
61
68
  const [selectedEditItem, setSelectedEditItem] = useState(null);
@@ -73,6 +80,13 @@ function DataManagement({
73
80
  return { defaults, filters };
74
81
  }, [tableFilters]);
75
82
 
83
+ const theme = useTheme();
84
+ const upXL = useMediaQuery(theme.breakpoints.up("xl"));
85
+ const elementSize = useMemo(() => {
86
+ const elementSize = upXL ? "medium" : "small";
87
+ return elementSize;
88
+ }, [upXL]);
89
+
76
90
  useEffect(() => {
77
91
  if (selectedEditItem && disableEditor) {
78
92
  onEditClick(selectedEditItem);
@@ -114,13 +128,14 @@ function DataManagement({
114
128
  <DataTableContext.Provider value={values}>
115
129
  <PermissionContext.Provider value={permissionValues}>
116
130
  <FormProvider {...methods}>
117
- <Stack direction="row" justifyContent={"space-between"} sx={{ mb: 4 }}>
131
+ <Stack direction="row" justifyContent={"space-between"} sx={{ mb: 4, ...slotProps?.header?.sx }}>
118
132
  <Typography variant="h4">{title}</Typography>
119
133
  <Stack direction="row" spacing={1}>
120
134
  <Tooltip title="Làm mới">
121
135
  <IconButton
122
136
  variant="outlined"
123
137
  color="primary"
138
+ size={elementSize}
124
139
  onClick={() => {
125
140
  setDataSearch({ ...defaults });
126
141
  [...filters].forEach((filter) => {
@@ -134,9 +149,10 @@ function DataManagement({
134
149
  </IconButton>
135
150
  </Tooltip>
136
151
 
137
- <ExportExcelButton tableName={tableName} data={dataSearch} />
152
+ <ExportExcelButton tableName={tableName} data={dataSearch} size={elementSize} />
138
153
  {(!Permission || Permission.Create) && (
139
154
  <Button
155
+ size={elementSize}
140
156
  variant="contained"
141
157
  startIcon={<Add />}
142
158
  onClick={(e) => {
@@ -152,9 +168,10 @@ function DataManagement({
152
168
  )}
153
169
  </Stack>
154
170
  </Stack>
171
+
155
172
  <Card>
156
173
  {tabPanel}
157
- <FilterGod filters={filters} elementSize={filterSize} />
174
+ <FilterGod filters={filters} elementSize={elementSize} />
158
175
  <DataTable />
159
176
  </Card>
160
177
  </FormProvider>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trithuc-mvc-react",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"