Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

290 linhas
12 KiB

  1. // material-ui
  2. import {
  3. Grid, TextField, Typography
  4. } from '@mui/material';
  5. import MainCard from "../../components/MainCard";
  6. import * as React from "react";
  7. import {useForm} from "react-hook-form";
  8. // import Autocomplete from "@mui/material/Autocomplete";
  9. // import {
  10. // subDivision1,
  11. // subDivision2,
  12. // subDivision3,
  13. // subDivision4,
  14. // subDivision5,
  15. // subDivision6
  16. // } from "../pnspsUserSearchPage/DummyComboRecord";
  17. import {useEffect, useState} from "react";
  18. import Checkbox from "@mui/material/Checkbox";
  19. import LoadingComponent from "../extra-pages/LoadingComponent";
  20. //import {useParams} from "react-router-dom";
  21. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  22. // const subDivisionArray = [
  23. // ...subDivision1,
  24. // ...subDivision2,
  25. // ...subDivision3,
  26. // ...subDivision4,
  27. // ...subDivision5,
  28. // ...subDivision6
  29. // ];
  30. const UserInformationCard = ({isCollectData, updateUserObject,userData}) => {
  31. //const params = useParams();
  32. const [currentUserData, setCurrentUserData] = React.useState({});
  33. // const [subDivision, setSubDivision] = useState(null);
  34. const [locked, setLocked] = useState(false);
  35. // const [isLotusNoteUser, setIsLotusNoteUser] = useState(false);
  36. // const [lotusNoteUserList, setLotusNoteUserList] = useState([])
  37. // const [selectedLotusUser, setSelectedLotusUser] = useState(null);
  38. const [onReady, setOnReady] = useState(false);
  39. const {register, getValues} = useForm()
  40. // useEffect(() => {
  41. // //TODO: Get lotus note user list
  42. // setLotusNoteUserList([
  43. // {
  44. // key: 1,
  45. // label: "user01",
  46. // account: "user123456"
  47. // },
  48. // {
  49. // key: 2,
  50. // label: "user02",
  51. // account: "userabcde1"
  52. // },
  53. // {
  54. // key: 3,
  55. // label: "user03",
  56. // account: "user2001"
  57. // },
  58. // {
  59. // key: 4,
  60. // label: "user04",
  61. // account: "user2000"
  62. // },
  63. // {
  64. // key: 5,
  65. // label: "user05",
  66. // account: "user1999"
  67. // },
  68. // ])
  69. // }, []);
  70. useEffect(() => {
  71. //if user data from parent are not null
  72. if (Object.keys(userData).length > 0 && userData !== undefined) {
  73. setCurrentUserData(userData.data);
  74. }
  75. }, [userData]);
  76. useEffect(() => {
  77. //if state data are ready and assign to different field
  78. if (Object.keys(userData).length > 0 &&currentUserData !== undefined) {
  79. setLocked(currentUserData.locked);
  80. setOnReady(true);
  81. }
  82. }, [currentUserData]);
  83. useEffect(() => {
  84. //upload latest data to parent
  85. const values = getValues();
  86. const objectData ={
  87. ...values,
  88. // selectedLotusUser: selectedLotusUser,
  89. // subDivision: subDivision,
  90. locked: locked,
  91. }
  92. updateUserObject(objectData);
  93. }, [isCollectData]);
  94. return (
  95. !onReady ?
  96. <LoadingComponent/>
  97. :
  98. <MainCard elevation={0}
  99. border={false}
  100. content={false}
  101. >
  102. <Typography variant="h5" sx={{mt: 3, ml: 3, mb: 1}}>
  103. Information
  104. </Typography>
  105. <form>
  106. <Grid container>
  107. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  108. <Grid container alignItems={"center"}>
  109. <Grid item xs={4} s={4} md={4} lg={4}
  110. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  111. Username:
  112. </Grid>
  113. <Grid item xs={7} s={7} md={7} lg={6}>
  114. <TextField
  115. fullWidth
  116. {...register("userName",
  117. {
  118. value: currentUserData.username,
  119. })}
  120. id='username'
  121. disabled
  122. />
  123. </Grid>
  124. </Grid>
  125. </Grid>
  126. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  127. <Grid container alignItems={"center"}>
  128. <Grid item xs={4} s={4} md={4} lg={4}
  129. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  130. Password:
  131. </Grid>
  132. <Grid item xs={7} s={7} md={7} lg={6}>
  133. <TextField
  134. fullWidth
  135. {...register("password")}
  136. id='password'
  137. disabled
  138. />
  139. </Grid>
  140. </Grid>
  141. </Grid>
  142. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  143. <Grid container alignItems={"center"}>
  144. <Grid item xs={4} s={4} md={4} lg={4}
  145. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  146. Full Name:
  147. </Grid>
  148. <Grid item xs={7} s={7} md={7} lg={6}>
  149. <TextField
  150. fullWidth
  151. {...register("fullName",
  152. {
  153. value: currentUserData.fullname,
  154. })}
  155. id='fullName'
  156. />
  157. </Grid>
  158. </Grid>
  159. </Grid>
  160. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  161. <Grid container alignItems={"center"}>
  162. <Grid item xs={4} s={4} md={4} lg={4}
  163. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  164. Post:
  165. </Grid>
  166. <Grid item xs={7} s={7} md={7} lg={6}>
  167. <TextField
  168. fullWidth
  169. {...register("post",
  170. {
  171. value: currentUserData.post,
  172. })}
  173. id='post'
  174. />
  175. </Grid>
  176. </Grid>
  177. </Grid>
  178. {/* <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  179. <Grid container alignItems={"center"}>
  180. <Grid item xs={4} s={4} md={4} lg={4}
  181. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  182. Sub-Division:
  183. </Grid>
  184. <Grid item xs={7} s={7} md={7} lg={6}>
  185. <Autocomplete
  186. disablePortal
  187. id="sub-division-combo"
  188. value={subDivision === null ? null : subDivision}
  189. options={subDivisionArray}
  190. onChange={(event, newValue) => {
  191. setSubDivision(newValue);
  192. }}
  193. renderInput={(params) => <TextField {...params} />}
  194. />
  195. </Grid>
  196. </Grid>
  197. </Grid> */}
  198. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  199. <Grid container alignItems={"center"}>
  200. <Grid item xs={4} s={4} md={4} lg={4}
  201. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  202. Email:
  203. </Grid>
  204. <Grid item xs={7} s={7} md={7} lg={6}>
  205. <TextField
  206. fullWidth
  207. {...register("email",
  208. {
  209. value: currentUserData.email,
  210. })}
  211. id='email'
  212. />
  213. </Grid>
  214. </Grid>
  215. </Grid>
  216. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  217. <Grid container alignItems={"center"}>
  218. <Grid item xs={4} s={4} md={4} lg={4}
  219. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  220. Phone:
  221. </Grid>
  222. <Grid item xs={7} s={7} md={7} lg={6}>
  223. <TextField
  224. fullWidth
  225. {...register("phone1",
  226. {
  227. value: currentUserData.phone1,
  228. })}
  229. id='phone1'
  230. />
  231. </Grid>
  232. </Grid>
  233. </Grid>
  234. <Grid item xs={12} s={12} md={12} lg={12} sx={{ml: 3, mr: 3, mb: 3}}>
  235. <Grid container>
  236. <Grid item xs={4} s={4} md={4} lg={4}
  237. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  238. Locked:
  239. </Grid>
  240. <Grid item xs={7} s={7} md={7} lg={6}>
  241. <Checkbox
  242. checked={locked}
  243. onChange={(event) => setLocked(event.target.checked)}
  244. name="checked"
  245. color="primary"
  246. size="small"
  247. />
  248. </Grid>
  249. </Grid>
  250. </Grid>
  251. </Grid>
  252. </form>
  253. </MainCard>
  254. );
  255. };
  256. export default UserInformationCard;