// 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_GLD_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, editMode }) => {
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([]);
const [_editMode, setEditMode] = useState(editMode);
useEffect(() => {
setEditMode(editMode);
}, [editMode])
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_GLD_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 && currentUserData !== 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)
{
_editMode ?
User:
{
// console.log(newValue)
setSelectedUser(newValue);
}}
sx={{
'& .MuiInputBase-root': { alignItems: 'center' },
'& .MuiAutocomplete-endAdornment': { top: '50%', transform: 'translateY(-50%)' },
'& .MuiOutlinedInput-root': { height: 40 }
}}
renderInput={(params) => }
/>
: <>>
}
);
};
export default UserAddCard;