1
0
Fork 0
This repository has been archived on 2022-09-24. You can view files and clone it, but cannot push or open issues or pull requests.
sudoscientist-js-frontend/src/components/AuthMenu.js

80 lines
2.1 KiB
JavaScript
Raw Normal View History

2019-08-27 06:17:32 +00:00
import React, { Component } from 'react';
import { connect } from 'react-redux';
class AuthMenu extends Component {
constructor (props) {
super(props)
this.state = {
where_in_auth_menu: "username",
2019-08-28 00:53:20 +00:00
auth_menu_visible: props.auth_menu_visible,
2019-08-27 06:17:32 +00:00
}
this.handleSignUpRequest = this.handleSignUpRequest.bind(this)
this.handleLogInAttempt = this.handleLogInAttempt.bind(this)
this.handleAccountCreation = this.handleAccountCreation.bind(this)
2019-08-28 00:53:20 +00:00
this.authMenu = this.authMenu.bind(this)
2019-08-27 06:17:32 +00:00
}
handleSignUpRequest() {
this.setState(state => ({
where_in_auth_menu: "email",
auth_menu_visible: true,
}));
}
handleLogInAttempt() {
this.setState(state => ({
where_in_auth_menu: "password",
auth_menu_visible: true,
}));
}
handleAccountCreation() {
this.setState(state => ({
where_in_auth_menu: "password",
auth_menu_visible: true,
}));
}
2019-08-28 00:53:20 +00:00
authMenu() {
if (!this.state.auth_menu_visible) {
return null;
}
switch(this.state.where_in_auth_menu) {
case 'username':
return (
<div className="ui menu dropdown" style={{display: "inline"}}>
<div className="ui left icon input">
<input type="text" placeholder="Username">
</input>
<i className="users icon"></i>
</div>
<div className="fluid ui buttons">
<button onClick={this.handleSignUpRequest} className="ui button">Sign Up</button>
<div className="or"></div>
<button className="ui positive button">Sign In</button>
</div>
</div>
)
case 'password':
return (
<div className="ui menu dropdown" style={{display: "inline"}}>
<div className="ui left icon input">
<input type="text" placeholder="Username">
</input>
<i className="users icon"></i>
</div>
</div>
)
default:
return null;
}
}
2019-08-27 06:17:32 +00:00
render() {
return (
2019-08-28 00:53:20 +00:00
this.authMenu(this.state.auth_menu_visible)
2019-08-27 06:17:32 +00:00
)
}
}
export default (AuthMenu)