Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

94 řádky
2.5 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/Visibility';
  8. import {useEffect} from "react";
  9. import {useNavigate} from "react-router-dom";
  10. // ==============================|| EVENT TABLE ||============================== //
  11. export default function OrganizationTable({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 handleActionClick = (id) => () => {
  19. navigate('/org/'+ 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={handleActionClick(id)}
  36. color="primary"
  37. />]
  38. },
  39. },
  40. {
  41. id: 'brNo',
  42. field: 'brNo',
  43. headerName: 'BR No.',
  44. flex: 1,
  45. },
  46. {
  47. id: 'enCompanyName',
  48. field: 'enCompanyName',
  49. headerName: 'Name (Eng)',
  50. flex: 1,
  51. },
  52. {
  53. id: 'chCompanyName',
  54. field: 'chCompanyName',
  55. headerName: 'Name (Ch)',
  56. flex: 1,
  57. },
  58. {
  59. id: 'contactTel',
  60. field: 'contactTel',
  61. headerName: 'Tel.',
  62. flex: 1,
  63. },
  64. {
  65. id: 'brExpiryDate',
  66. field: 'brExpiryDate',
  67. headerName: 'Expiry Date',
  68. flex: 1,
  69. },
  70. ];
  71. return (
  72. <div style={{height: 400, width: '100%'}}>
  73. <DataGrid
  74. rows={rows}
  75. columns={columns}
  76. editMode="row"
  77. rowModesModel={rowModesModel}
  78. initialState={{
  79. pagination: {
  80. paginationModel: {page: 0, pageSize: 5},
  81. },
  82. }}
  83. pageSizeOptions={[5, 10]}
  84. autoHeight
  85. />
  86. </div>
  87. );
  88. }