Fixing logout button

This commit is contained in:
John Lyon-Smith
2018-02-28 16:28:36 -08:00
parent 5889f7655a
commit 5e790ba65c
5 changed files with 39 additions and 8 deletions

View File

@@ -9,10 +9,38 @@ import logoImage from 'images/logo.png'
import { versionInfo } from './version'
import { sizeInfo } from 'ui/style'
import { api } from 'src/API'
import { reactAutoBind } from 'auto-bind2'
export class App extends React.Component {
constructor(props) {
super(props)
reactAutoBind(this)
this.state = {
loggedInUser: api.loggedInUser
}
}
handleUpdate() {
this.setState({ loggedInUser: api.loggedInUser })
}
componentDidMount() {
api.addListener('login', this.handleUpdate)
api.addListener('logout', this.handleUpdate)
}
componentWillUnmount() {
api.removeListener('login', this.handleUpdate)
api.removeListener('logout', this.handleUpdate)
}
handleLogout() {
api.logout()
}
render() {
const height = sizeInfo.headerHeight - sizeInfo.headerBorderWidth
const { loggedInUser } = this.state
return (
<Column minHeight='100vh'>
@@ -24,10 +52,10 @@ export class App extends React.Component {
height={height}
margin={sizeInfo.headerMargin} />
</Row.Item>
<Row.Item grow>&nbsp;</Row.Item>
<Row.Item grow />
<Row.Item>
{ api.loggedInUser && <HeaderButton icon='profile' size={height} /> }
{ api.loggedInUser && <HeaderButton icon='logout' size={height} /> }
{ loggedInUser && <HeaderButton icon='profile' size={height} /> }
{ loggedInUser && <HeaderButton icon='logout' size={height} onClick={this.handleLogout} /> }
</Row.Item>
</Row>
</Box>