// 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}) => {
const [currentUserData, setCurrentUserData] = React.useState({});
const [onReady, setOnReady] = useState(false);
const [groupUserData, setGroupUserData] = useState([]);
const [userComboList, setUserComboList] = useState([]);
const [selectedUser, setSelectedUser] = useState(null);
function updateUserList (){
const idList = getIdList(groupUserData);
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 (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(groupUserData);
}, [isCollectData]);
return (
!onReady ?
:
User(s)
User:
{
console.log(newValue)
setSelectedUser(newValue);
}}
renderInput={(params) => }
/>
);
};
export default UserAddCard;