Advertisement
Guest User

Untitled

a guest
Jul 12th, 2023
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. export const Login: React.FC = () => {
  2. const navigate = useNavigate();
  3.  
  4. const resetForm = () => {
  5. setUserData({
  6. username: '',
  7. password: '',
  8.  
  9. });
  10. }
  11.  
  12. const [errors, setErrors] = useState({ username: '', password: '' });
  13.  
  14. const [userData, setUserData] = useState<LoginModel>({
  15. username: '',
  16. password: '',
  17. });
  18.  
  19. const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  20. const { name, value } = event.target;
  21. setUserData((prevUserData) => ({
  22. ...prevUserData,
  23. [name]: value
  24. }))
  25. };
  26.  
  27.  
  28. const handleSubmit = async (event: React.FormEvent) => {
  29. event.preventDefault();
  30.  
  31. try {
  32. const response = await axios.post('http://localhost:8080/login', userData).then((response) => response.data);
  33.  
  34.  
  35. if (response) {
  36. console.log("Response e ok");
  37. resetForm();
  38. navigate('/home');
  39. } else {
  40. const errorResponse = response.data;
  41. console.log(errorResponse);
  42. setErrors(errorResponse);
  43. }
  44.  
  45. } catch (error) {
  46. console.log("Some Error");
  47. resetForm();
  48. }
  49. }
  50.  
  51. return (
  52. <div className="login-container container">
  53. <div className="row login-intro-text"><h3 className="d-flex">Please use your credentials to login</h3></div>
  54. <hr className="whiteHr" />
  55. <div className="row container">
  56. <form id="login-form" onSubmit={handleSubmit}>
  57. <div className="form-group col-xs-4 col-md-8 col-lg-6">
  58. <label htmlFor="username">Username</label>
  59. <input type="text" className="form-control" id="username" name="username" onChange={handleChange} aria-describedby="username" value={userData.username} placeholder="Enter username" />
  60. {
  61. errors.username && <span style={{ color: 'red', fontSize: '12px' }}>{errors.username}</span>
  62. }
  63. </div>
  64. <div className="form-group col-xs-4 col-md-8 col-lg-6">
  65. <label htmlFor="password">Password</label>
  66. <input type="password" className="form-control" id="password" name="password" value={userData.password} onChange={handleChange} placeholder="Password" />
  67. {
  68. errors.password && <span style={{ color: 'red', fontSize: '12px' }}>{errors.password}</span>
  69. }
  70. </div>
  71. <div className="button-container container">
  72. <button type="submit" className="btn btn-primary">Submit</button>
  73. </div>
  74. </form>
  75. </div>
  76. </div>
  77. );
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement