25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

65 lines
2.0 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 LoadingComponent from "../extra-pages/LoadingComponent";
  9. import UserGroupTable from "./UserGroupTable";
  10. import Loadable from 'components/Loadable';
  11. import { lazy } from 'react';
  12. const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
  13. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  14. const UserGroupCard = ({isCollectData, updateUserGroupList,userData}) => {
  15. const [currentUserData, setCurrentUserData] = React.useState({});
  16. const [onReady, setOnReady] = useState(false);
  17. const [selectedRow, setSelectedRow] = useState([]);
  18. useEffect(() => {
  19. //if user data from parent are not null
  20. if (Object.keys(userData).length > 0 && userData !== undefined) {
  21. setCurrentUserData(userData.data);
  22. setSelectedRow(userData.groupIds);
  23. }
  24. }, [userData]);
  25. useEffect(() => {
  26. //if state data are ready and assign to different field
  27. // if (Object.keys(userData).length > 0 &&currentUserData !== undefined) {
  28. if (Object.keys(userData).length > 0 &&currentUserData !== undefined) {
  29. setOnReady(true);
  30. }
  31. }, [currentUserData]);
  32. useEffect(() => {
  33. //upload latest data to parent
  34. updateUserGroupList(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. Group(s)
  46. </Typography>
  47. <UserGroupTable
  48. userGroup={userData.groupIds}
  49. setSelectedRow={setSelectedRow}
  50. />
  51. </MainCard>
  52. );
  53. };
  54. export default UserGroupCard;