Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

95 righe
2.7 KiB

  1. // material-ui
  2. import {
  3. DataGrid,
  4. GridRowModes
  5. } from "@mui/x-data-grid";
  6. import * as React from 'react';
  7. import { useEffect } from "react";
  8. import {
  9. Box,
  10. Stack
  11. } from '@mui/material';
  12. import {useIntl} from "react-intl";
  13. import { createDeleteFileColumn } from 'utils/fileListColumns';
  14. // ==============================|| EVENT TABLE ||============================== //
  15. export default function UploadFileTable({recordList, setRecordList,}) {
  16. const [rows, setRows] = React.useState(recordList);
  17. const [rowModesModel,setRowModesModel] = React.useState({});
  18. const intl = useIntl();
  19. // const theme = useTheme();
  20. // const navigate = useNavigate()
  21. useEffect(() => {
  22. setRows(recordList);
  23. // console.log(disableDelete);
  24. }, [recordList]);
  25. function NoRowsOverlay() {
  26. return (
  27. <Stack height="100%" alignItems="center" justifyContent="center">
  28. No File Record
  29. {/* <pre>(rows=&#123;[]&#125;)</pre> */}
  30. </Stack>
  31. );
  32. }
  33. const handleCancelClick = (id) => () => {
  34. setRowModesModel({
  35. ...rowModesModel,
  36. [id]: { mode: GridRowModes.View, ignoreModifications: true },
  37. });
  38. // console.log("Starting Delete")
  39. // const editedRow = rows.find((row) => row.id === id);
  40. // console.log(editedRow)
  41. // console.log(editedRow.isNew)
  42. setRecordList(rows.filter((row) => row.id !== id));
  43. setRows(rows.filter((row) => row.id !== id));
  44. }
  45. const deleteColumn = createDeleteFileColumn((id) => handleCancelClick(id));
  46. const columns = [
  47. deleteColumn,
  48. {
  49. id: 'name',
  50. field: 'name',
  51. headerName: intl.formatMessage({id: 'fileName'}),
  52. flex: 1,
  53. },
  54. {
  55. id: 'size',
  56. field: 'size',
  57. headerName: intl.formatMessage({id: 'fileSize'}),
  58. valueGetter: (params) => {
  59. // console.log(params)
  60. return Math.ceil(params.value/1024)+" KB";
  61. },
  62. flex: 1,
  63. },
  64. ];
  65. return (
  66. <Box
  67. style={{ height: '200px', width: '75%' }}
  68. >
  69. <DataGrid
  70. rows={rows}
  71. columns={columns}
  72. editMode="row"
  73. sx={{border:1}}
  74. rowModesModel={rowModesModel}
  75. components={{ NoRowsOverlay, }}
  76. // hideFooterPagination={true}
  77. disablePagination
  78. disableSelectionOnClick
  79. disableColumnMenu
  80. disableColumnSelector
  81. hideFooter
  82. />
  83. </Box>
  84. );
  85. }