You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
2.1 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. >
  44. <Typography variant="h5" sx={{mt: 3, ml: 3}}>
  45. User Authority
  46. </Typography>
  47. <UserAuthTable
  48. userAuth={userData.authIds}
  49. setSelectedRow={setSelectedRow}
  50. isNewRecord={isNewRecord}
  51. />
  52. </MainCard>
  53. );
  54. };
  55. export default UserAuthorityCard;