|
|
|
@ -1,69 +1,51 @@ |
|
|
|
import React, { PropTypes } from "react"; |
|
|
|
import { connect } from "react-redux"; |
|
|
|
|
|
|
|
import propTypeSymbol from "../utils/propTypeSymbol"; |
|
|
|
import { |
|
|
|
LOGIN_STATUS_UNKNOWN, |
|
|
|
LOGIN_STATUS_GETTING, |
|
|
|
LOGIN_STATUS_PENDING, |
|
|
|
LOGIN_STATUS_SUCCESS, |
|
|
|
LOGIN_STATUS_FAILURE |
|
|
|
} from "../constants/login"; |
|
|
|
|
|
|
|
// TODO: Define Props type.
|
|
|
|
class LoginStatusPane extends React.Component |
|
|
|
{ |
|
|
|
constructor(props) { |
|
|
|
super(props); |
|
|
|
} |
|
|
|
|
|
|
|
render() { |
|
|
|
let statusText; |
|
|
|
let motd; |
|
|
|
let reason; |
|
|
|
|
|
|
|
switch (this.props.status) { |
|
|
|
case LOGIN_STATUS_UNKNOWN: |
|
|
|
statusText = "unknown"; |
|
|
|
break; |
|
|
|
|
|
|
|
case LOGIN_STATUS_GETTING: |
|
|
|
statusText = "fetching"; |
|
|
|
break; |
|
|
|
|
|
|
|
case LOGIN_STATUS_PENDING: |
|
|
|
statusText = `logging in as ${this.props.username}`; |
|
|
|
break; |
|
|
|
|
|
|
|
case LOGIN_STATUS_SUCCESS: |
|
|
|
statusText = `logged in as ${this.props.username}`; |
|
|
|
motd = ( |
|
|
|
<span id="login-status-motd"> |
|
|
|
MOTD: {this.props.motd} |
|
|
|
</span> |
|
|
|
); |
|
|
|
break; |
|
|
|
|
|
|
|
case LOGIN_STATUS_FAILURE: |
|
|
|
statusText = `failed to log in as ${this.props.username}`; |
|
|
|
reason = ( |
|
|
|
<span id="login-status-reason"> |
|
|
|
Reason: {this.props.reason} |
|
|
|
</span> |
|
|
|
); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
<div id="login-status-pane"> |
|
|
|
<span id="login-status-text"> |
|
|
|
Login status: {statusText} |
|
|
|
</span> |
|
|
|
{motd} |
|
|
|
{reason} |
|
|
|
</div> |
|
|
|
); |
|
|
|
} |
|
|
|
import { LoginStatus, LoginSliceState } from "../modules/login/slice"; |
|
|
|
|
|
|
|
const LoginStatusPane = (props: LoginSliceState) => { |
|
|
|
let statusText; |
|
|
|
let motd; |
|
|
|
let reason; |
|
|
|
|
|
|
|
switch (props.status) { |
|
|
|
case LoginStatus.Unknown: |
|
|
|
statusText = "unknown"; |
|
|
|
break; |
|
|
|
|
|
|
|
case LoginStatus.Getting: |
|
|
|
statusText = "fetching"; |
|
|
|
break; |
|
|
|
|
|
|
|
case LoginStatus.Pending: |
|
|
|
statusText = `logging in as ${this.props.username}`; |
|
|
|
break; |
|
|
|
|
|
|
|
case LoginStatus.Success: |
|
|
|
statusText = `logged in as ${this.props.username}`; |
|
|
|
motd = ( |
|
|
|
<span id="login-status-motd"> |
|
|
|
MOTD: {props.motd} |
|
|
|
</span> |
|
|
|
); |
|
|
|
break; |
|
|
|
|
|
|
|
case LoginStatus.Failure: |
|
|
|
statusText = `failed to log in as ${this.props.username}`; |
|
|
|
reason = ( |
|
|
|
<span id="login-status-reason"> |
|
|
|
Reason: {props.reason} |
|
|
|
</span> |
|
|
|
); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
<div id="login-status-pane"> |
|
|
|
<span id="login-status-text"> |
|
|
|
Login status: {statusText} |
|
|
|
</span> |
|
|
|
{motd} |
|
|
|
{reason} |
|
|
|
</div> |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
export default LoginStatusPane; |