Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

76 linhas
2.1 KiB

  1. // material-ui
  2. import * as React from 'react';
  3. import {
  4. DataGrid,
  5. GridActionsCellItem,
  6. } from "@mui/x-data-grid";
  7. import EditIcon from '@mui/icons-material/Edit';
  8. import {useEffect} from "react";
  9. import {useNavigate} from "react-router-dom";
  10. // ==============================|| EVENT TABLE ||============================== //
  11. export default function UserGroupTable({recordList}) {
  12. const [rows, setRows] = React.useState(recordList);
  13. const [rowModesModel] = React.useState({});
  14. const navigate = useNavigate()
  15. useEffect(() => {
  16. setRows(recordList);
  17. }, [recordList]);
  18. const handleEditClick = (id) => () => {
  19. navigate('/userGroup/'+ id);
  20. };
  21. const columns = [
  22. {
  23. field: 'actions',
  24. type: 'actions',
  25. headerName: 'Actions',
  26. width: 100,
  27. cellClassName: 'actions',
  28. getActions: ({id}) => {
  29. return [
  30. <GridActionsCellItem
  31. key="OutSave"
  32. icon={<EditIcon/>}
  33. label="Edit"
  34. className="textPrimary"
  35. onClick={handleEditClick(id)}
  36. color="primary"
  37. />]
  38. },
  39. },
  40. {
  41. id: 'groupName',
  42. field: 'name',
  43. headerName: 'User Group Name',
  44. flex: 1,
  45. },
  46. {
  47. id: 'description',
  48. field: 'description',
  49. headerName: 'User Group Description',
  50. flex: 1,
  51. },
  52. ];
  53. return (
  54. <div style={{height: 400, width: '100%'}}>
  55. <DataGrid
  56. rows={rows}
  57. columns={columns}
  58. editMode="row"
  59. rowModesModel={rowModesModel}
  60. initialState={{
  61. pagination: {
  62. paginationModel: {page: 0, pageSize: 10},
  63. },
  64. }}
  65. pageSizeOptions={[10, 15, 20]}
  66. autoHeight = {true}
  67. />
  68. </div>
  69. );
  70. }