// material-ui import { Button, Grid, TextField, Typography } from '@mui/material'; import MainCard from "../../components/MainCard"; import * as React from "react"; import {useEffect, useState} from "react"; import {GET_GROUP_MEMBER_LIST_PATH, GET_USER_COMBO_LIST} from "../../utils/ApiPathConst"; import axios from "axios"; import {apiPath} from "../../auth/utils"; import Autocomplete from "@mui/material/Autocomplete"; import {getIdList} from "../../utils/CommonFunction"; //import LoadingComponent from "../extra-pages/LoadingComponent"; //import UserAddTable from "./UserAddTable"; import Loadable from 'components/Loadable'; import { lazy } from 'react'; const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent'))); const UserAddTable = Loadable(lazy(() => import('./UserAddTable'))); // ==============================|| DASHBOARD - DEFAULT ||============================== // const UserAddCard = ({isCollectData, updateGroupMember,userGroupData,isNewRecord}) => { const [currentUserData, setCurrentUserData] = React.useState({}); const [onReady, setOnReady] = useState(false); const [groupUserData, setGroupUserData] = useState([]); const [userComboList, setUserComboList] = useState([]); const [selectedUser, setSelectedUser] = useState(null); const [deletedList, setDeletedList] = useState([]); function updateUserList (){ const idList = getIdList(groupUserData); if(selectedUser!==null){ if(!idList.includes(selectedUser.id)){ const userList = [...groupUserData, selectedUser]; setGroupUserData(userList); console.log(userList); } } } useEffect(() => { axios.get(`${apiPath}${GET_USER_COMBO_LIST}`) .then((response) => { if (response.status === 200) { setUserComboList(response.data.records); } }) .catch(error => { console.log(error); return false; }); }, []); useEffect(() => { //if user data from parent are not null if (Object.keys(userGroupData).length > 0 && userGroupData !== undefined) { setCurrentUserData(userGroupData.data); } }, [userGroupData]); useEffect(() => { //if state data are ready and assign to different field if(isNewRecord){ setOnReady(true); } else{ if (Object.keys(userGroupData).length > 0 &¤tUserData !== undefined) { axios.get(`${apiPath}${GET_GROUP_MEMBER_LIST_PATH}?id=${userGroupData.data.id}`) .then((response) => { if (response.status === 200) { setGroupUserData(response.data.records); } setOnReady(true); }) .catch(error => { console.log(error); return false; }); } } }, [currentUserData]); useEffect(() => { //upload latest data to parent updateGroupMember({ "currentList" : groupUserData, "deletedList" : deletedList }); }, [isCollectData]); return ( !onReady ? : User(s) User: { console.log(newValue) setSelectedUser(newValue); }} renderInput={(params) => } /> ); }; export default UserAddCard;