auth.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import React, { Component } from "react";
  2. import { connect } from 'react-redux';
  3. import { Redirect } from 'react-router-dom';
  4. import { auth, register } from '../actions/auth';
  5. import {SignUpForm} from '../components/signUp';
  6. import {SignInForm} from '../components/signIn';
  7. import Loader from '../components/loader';
  8. class Auth extends Component {
  9. state = { auth: true };
  10. toggleAuth = () => this.setState(prevState => ({ auth: !prevState.auth}));
  11. render() {
  12. const { auth } = this.state;
  13. const { user } = this.props
  14. console.log('userProps',this.props.user)
  15. if(Object.keys(user).length !== 0 && user.role === "User") {
  16. return <Redirect to="/user" />
  17. }
  18. if(Object.keys(user).length !== 0 && user.role === "Doctor") {
  19. return <Redirect to="/admin" />
  20. }
  21. if(Object.keys(user).length !== 0 && user.role === "Admin") {
  22. return <Redirect to="/admin" />
  23. }
  24. return (
  25. <div className="main">
  26. <div className="auth-wrapper">
  27. <Loader flag={this.props.isFetching}>
  28. <div className="auth">
  29. <div className="auth__content">
  30. { auth ? (
  31. // <Loader flag={this.props.isFetching}>
  32. <SignInForm error={this.props.errorFromAuth} submitHandler={this.props.auth} />
  33. // {/* </Loader> */}
  34. ) : (
  35. // <Loader flag={this.props.isFetching}>
  36. <SignUpForm
  37. error={this.props.errorFromAuth}
  38. submitHandler={this.props.register}
  39. successRegister={this.props.successRegister}
  40. />
  41. // {/* </Loader> */}
  42. )}
  43. <div className="auth__additional-content">
  44. {auth ? (
  45. <p className="auth__text">
  46. Do you have account ? {" "}
  47. <span className="auth__toggle-span" onClick={this.toggleAuth}>
  48. Sing Up
  49. </span>
  50. </p>
  51. ) : (
  52. <p className="auth__text">
  53. I have account{" "}
  54. <span className="auth__toggle-span" onClick={this.toggleAuth}>
  55. Sign In
  56. </span>
  57. </p>
  58. )}
  59. </div>
  60. </div>
  61. </div>
  62. </Loader>
  63. </div>
  64. </div>
  65. );
  66. }
  67. }
  68. const mapStateToProps = state => ({
  69. user: state.auth.user,
  70. isFetching: state.auth.isFetching,
  71. errorFromAuth: state.auth.error,
  72. successRegister: state.auth.successRegister
  73. })
  74. export default connect(
  75. mapStateToProps,
  76. { auth,register }
  77. )(Auth);