Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

192 рядки
6.5 KiB

  1. // material-uisubDivision
  2. import {
  3. Button,
  4. CardContent, FormControlLabel,
  5. Grid, TextField,
  6. Typography
  7. } from '@mui/material';
  8. import MainCard from "../../components/MainCard";
  9. import {useForm} from "react-hook-form";
  10. import {
  11. // useEffect,
  12. useState} from "react";
  13. import Checkbox from "@mui/material/Checkbox";
  14. import * as React from "react";
  15. import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';
  16. import {useNavigate} from "react-router";
  17. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  18. const UserSearchForm = ({applySearch}) => {
  19. const navigate = useNavigate();
  20. const [type, setType] = useState([]);
  21. const [locked, setLocked] = useState(false);
  22. const { reset, register, handleSubmit } = useForm()
  23. const onSubmit = (data) => {
  24. let typeArray = [];
  25. for(let i =0; i < type.length; i++){
  26. typeArray.push(type[i].label);
  27. }
  28. const temp = {
  29. username: data.userName,
  30. fullenName: data.fullenName,
  31. post: data.post,
  32. email: data.email,
  33. phone: data.phone,
  34. locked: locked,
  35. };
  36. applySearch(temp);
  37. };
  38. function resetForm(){
  39. setType([]);
  40. setLocked(false);
  41. reset();
  42. }
  43. const handleNewUserClick = (id) => {
  44. // console.log(id)
  45. navigate('/user/'+ id);
  46. };
  47. return (
  48. <MainCard xs={12} md={12} lg={12}
  49. border={false}
  50. content={false}>
  51. <form onSubmit={handleSubmit(onSubmit)}>
  52. {/*row 1*/}
  53. <CardContent sx={{ px: 2.5, pt: 3 }}>
  54. <Grid item justifyContent="space-between" alignItems="center">
  55. Search Form (GLD User)
  56. </Grid>
  57. </CardContent>
  58. {/*row 2*/}
  59. <Grid container alignItems={"center"}>
  60. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  61. <TextField
  62. fullWidth
  63. {...register("userName")}
  64. id='userName'
  65. label="Username"
  66. />
  67. </Grid>
  68. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  69. <TextField
  70. fullWidth
  71. {...register("fullenName")}
  72. id="fullenName"
  73. label="Full Name"
  74. />
  75. </Grid>
  76. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  77. <TextField
  78. fullWidth
  79. {...register("post")}
  80. id="post"
  81. label="Post"
  82. />
  83. </Grid>
  84. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  85. <TextField
  86. fullWidth
  87. {...register("email")}
  88. id="email"
  89. label="Email"
  90. />
  91. </Grid>
  92. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  93. <TextField
  94. fullWidth
  95. {...register("phone")}
  96. id="phone"
  97. label="Phone"
  98. />
  99. </Grid>
  100. <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
  101. <FormControlLabel
  102. control={
  103. <Checkbox
  104. checked={locked}
  105. onChange={(event) => setLocked(event.target.checked)}
  106. name="checked"
  107. color="primary"
  108. size="small"
  109. />
  110. }
  111. label={<Typography variant="h6">Locked</Typography>}
  112. />
  113. </Grid>
  114. </Grid>
  115. {/*last row*/}
  116. <Grid container direction="row"
  117. justifyContent="space-between"
  118. alignItems="center">
  119. <Grid item xs={3} md={3} sx={{ml:1, mr:1, mb:3, mt:3}}>
  120. <Button
  121. size="large"
  122. variant="contained"
  123. onClick={handleNewUserClick}
  124. sx={{
  125. textTransform: 'capitalize',
  126. alignItems: 'end'
  127. }}>
  128. <AddCircleOutlineIcon/>
  129. New User
  130. </Button>
  131. </Grid>
  132. <Grid item xs={8} md={8} sx={{ml:3, mr:3, mb:3, mt:3}}>
  133. <Grid container >
  134. <Grid item sx={{ml:3, mr:3, mb:3, mt:3}}>
  135. <Button
  136. size="large"
  137. variant="contained"
  138. onClick={resetForm}
  139. sx={{
  140. textTransform: 'capitalize',
  141. alignItems: 'end'
  142. }}>
  143. Clear
  144. </Button>
  145. </Grid>
  146. <Grid item sx={{ml:3, mr:3, mb:3, mt:3}}>
  147. <Button
  148. size="large"
  149. variant="contained"
  150. type="submit"
  151. sx={{
  152. textTransform: 'capitalize',
  153. alignItems: 'end'
  154. }}>
  155. Search
  156. </Button>
  157. </Grid>
  158. </Grid>
  159. </Grid>
  160. </Grid>
  161. </form>
  162. </MainCard>
  163. );
  164. };
  165. export default UserSearchForm;