LoginForm.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import Button from '@mui/material/Button';
  2. import TextField from '@mui/material/TextField';
  3. import Container from '@mui/material/Container';
  4. import Box from '@mui/material/Box';
  5. import { Modal } from '../modalMessage/Modal';
  6. import { useDispatch, useSelector } from 'react-redux';
  7. import {setUserName, setUserPassword, getUserData} from '../../reducers/userDataReducer';
  8. export const LoginForm = () => {
  9. const dispatch = useDispatch();
  10. const userName = useSelector(state => state.userName);
  11. const password = useSelector(state => state.password);
  12. return (
  13. <Container maxWidth="xs">
  14. <Box
  15. component="form"
  16. onSubmit={(e) => {
  17. e.preventDefault();
  18. dispatch(getUserData())
  19. }}
  20. sx={{
  21. marginTop: 40,
  22. display: 'flex',
  23. flexDirection: 'column',
  24. }}>
  25. <TextField
  26. margin="normal"
  27. required
  28. fullWidth
  29. id="userName"
  30. label="user name"
  31. name="userName"
  32. autoComplete="email"
  33. autoFocus
  34. value={userName}
  35. onChange={e => dispatch(setUserName({userName: e.target.value}))}/>
  36. <TextField
  37. margin="normal"
  38. required
  39. fullWidth
  40. name="password"
  41. label="Password"
  42. type="password"
  43. id="password"
  44. autoComplete="current-password"
  45. value={password}
  46. onChange={e =>
  47. dispatch(setUserPassword({password: e.target.value}))
  48. }/>
  49. <Modal/>
  50. <Button
  51. type="submit"
  52. variant="contained"
  53. fullWidth>
  54. Login
  55. </Button>
  56. </Box>
  57. </Container>
  58. )
  59. };