UserPage.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import React, {Component} from "react";
  2. import LoginForm from "../../components/Forms/LoginForm";
  3. import {Col, Tabs} from "antd";
  4. import RegisterForm from "../../components/Forms/RegisterForm";
  5. import './UserPage.less'
  6. import ForgetPasswordForm from "../../components/Forms/ForgetPasswordForm";
  7. import LogoutForm from "../../components/Forms/LogoutForm";
  8. const {TabPane} = Tabs;
  9. class UserPage extends Component {
  10. state = {
  11. loginStatus: "login",
  12. tagWidth: this.props.comeFrom === 'home' ? 8 : 20,
  13. tagOffset: this.props.comeFrom === 'home' ? 12 : 2,
  14. selectedKey: '1',
  15. };
  16. handleLogged = () => {
  17. this.setState({
  18. loginStatus: this.state.loginStatus === 'login' ? 'logged' : 'login',
  19. })
  20. }
  21. handleSelectKey = () => {
  22. this.setState({
  23. selectedKey: this.state.selectedKey === '1' ? '2' : '1',
  24. })
  25. this.handleLoginStatus('login')
  26. }
  27. handleLoginStatus = LoginStatus => {
  28. this.setState(
  29. {
  30. loginStatus: LoginStatus,
  31. }
  32. )
  33. if (LoginStatus === 'forget') {
  34. this.setState(
  35. {
  36. tagWidth: this.props.comeFrom === 'home' ? 10 : 24,
  37. tagOffset: this.props.comeFrom === 'home' ? 11 : 0,
  38. }
  39. )
  40. } else {
  41. this.setState(
  42. {
  43. tagWidth: this.props.comeFrom === 'home' ? 8 : 20,
  44. tagOffset: this.props.comeFrom === 'home' ? 12 : 2,
  45. }
  46. )
  47. }
  48. }
  49. render() {
  50. let {loginStatus, tagWidth, tagOffset} = this.state;
  51. const renderTabBar = (props, DefaultTabBar) => (
  52. <DefaultTabBar {...props} style={{width: '100%'}}/>
  53. );
  54. return (
  55. <Col span={tagWidth} offset={tagOffset} className={'UserCard'}>
  56. <Tabs
  57. onChange={this.handleSelectKey}
  58. size={'large'}
  59. animated={true}
  60. centered={true}
  61. tabBarGutter={50}
  62. renderTabBar={renderTabBar}
  63. activeKey={this.state.selectedKey}
  64. >
  65. <TabPane
  66. tab={loginStatus === 'forget' ? "RESET PASSWORD" : loginStatus === 'login' ? "LOGIN" : 'LOGOUT'}
  67. key="1"
  68. style={{padding: "20px 30px 10px"}}>
  69. {
  70. loginStatus === 'login' ?
  71. <LoginForm handleLoginStatus={this.handleLoginStatus.bind(this)}
  72. handleLogged={this.handleLogged.bind(this)}/>
  73. : loginStatus === 'forget' ?
  74. <ForgetPasswordForm handleLoginStatus={this.handleLoginStatus.bind(this)}/>
  75. : <LogoutForm handleLogged={this.handleLogged.bind(this)}/>
  76. }
  77. </TabPane>
  78. {
  79. loginStatus === 'logged' ? null :
  80. <TabPane tab="REGISTER" key="2" style={{padding: "20px 30px 0"}}>
  81. <RegisterForm handleSelectKey={this.handleSelectKey.bind(this)}/>
  82. </TabPane>
  83. }
  84. </Tabs>
  85. </Col>
  86. );
  87. }
  88. }
  89. export default UserPage;