Você não pode selecionar mais de 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.
 
 

69 linhas
2.2 KiB

  1. // material-ui
  2. import {
  3. Typography
  4. } from '@mui/material';
  5. import MainCard from "../../../components/MainCard";
  6. import * as React from "react";
  7. import { useEffect, useState } from "react";
  8. import Loadable from 'components/Loadable';
  9. import { lazy } from 'react';
  10. const UserAuthTable = Loadable(lazy(() => import('./UserAuthTable')));
  11. const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
  12. // import LoadingComponent from "../extra-pages/LoadingComponent";
  13. // import UserAuthTable from "./UserAuthTable";
  14. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  15. const UserAuthorityCard = ({ isCollectData, updateUserAuthList, userData, isNewRecord }) => {
  16. const [currentAuthData, setCurrentAuthData] = React.useState({});
  17. const [onReady, setOnReady] = useState(false);
  18. const [selectedRow, setSelectedRow] = useState([]);
  19. useEffect(() => {
  20. //if user data from parent are not null
  21. if (Object.keys(userData).length > 0 && userData !== undefined) {
  22. setCurrentAuthData(userData.data);
  23. setSelectedRow(userData.authIds);
  24. }
  25. }, [userData]);
  26. useEffect(() => {
  27. //if state data are ready and assign to different field
  28. if (Object.keys(userData).length > 0 && currentAuthData !== undefined) {
  29. setOnReady(true);
  30. }
  31. }, [currentAuthData]);
  32. useEffect(() => {
  33. //upload latest data to parent
  34. updateUserAuthList(selectedRow);
  35. }, [isCollectData]);
  36. return (
  37. !onReady ?
  38. <LoadingComponent />
  39. :
  40. <MainCard elevation={0}
  41. border={false}
  42. content={false}
  43. sx={{margin: 0}}
  44. >
  45. <Typography variant="h6" sx={{ mt: 2, ml: 3, mr: 1, borderBottom: "1px solid black" }}>
  46. User Authority
  47. </Typography>
  48. <UserAuthTable
  49. userAuth={userData.authIds}
  50. setSelectedRow={setSelectedRow}
  51. isNewRecord={isNewRecord}
  52. />
  53. <br/>
  54. </MainCard>
  55. );
  56. };
  57. export default UserAuthorityCard;