1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00
Files
Boostnote/browser/main/Containers/MainContainer.jsx
2015-07-28 23:35:21 +09:00

48 lines
1.3 KiB
JavaScript

var React = require('react/addons')
var ReactRouter = require('react-router')
var RouteHandler = ReactRouter.RouteHandler
var AuthStore = require('../Stores/AuthStore')
module.exports = React.createClass({
mixins: [ReactRouter.Navigation, ReactRouter.State],
componentDidMount: function () {
this.unsubscribe = AuthStore.listen(this.onListen)
},
componentWillUnmount: function () {
this.unsubscribe()
},
onListen: function (res) {
if (res == null || res.status == null) {
return
}
if (res.status === 'loggedIn' || res.status === 'registered') {
var user = res.data
var planet = user.Planets.length > 0 ? user.Planets[0] : null
if (planet == null) {
this.transitionTo('user', {userName: user.name})
return
}
this.transitionTo('planetHome', {userName: user.name, planetName: planet.name})
return
}
if (res.status === 'loggedOut') {
this.transitionTo('login')
return
}
},
render: function () {
// Redirect Login state
if (this.getPath() === '/') {
this.transitionTo('/login')
}
return (
<div className='Main'>
<RouteHandler/>
</div>
)
}
})