1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00

on Refactoring...

This commit is contained in:
Rokt33r
2015-08-17 01:10:08 +09:00
parent 932997259f
commit 23b8b49c00
59 changed files with 1960 additions and 2179 deletions

View File

@@ -1,92 +1,64 @@
/* global localStorage */
var React = require('react/addons')
var ReactRouter = require('react-router')
var RouteHandler = ReactRouter.RouteHandler
var request = require('superagent')
var Navigation = ReactRouter.Navigation
var State = ReactRouter.State
var AuthActions = require('../Actions/AuthActions')
var Hq = require('../Services/Hq')
var AuthStore = require('../Stores/AuthStore')
var UserStore = require('../Stores/UserStore')
var apiUrl = require('../../../config').apiUrl
function fetchPlanet (planet) {
request
.get(apiUrl + planet.userName + '/' + planet.name)
.send()
.end(function (err, res) {
if (err) {
console.error(err)
return
}
var _planet = res.body
_planet.userName = planet.userName
_planet.Snippets = _planet.Snippets.map(function (snippet) {
snippet.type = 'snippet'
return snippet
})
_planet.Blueprints = _planet.Blueprints.map(function (blueprint) {
blueprint.type = 'blueprint'
return blueprint
})
localStorage.setItem('planet-' + _planet.id, JSON.stringify(_planet))
console.log('planet-' + _planet.id + ' fetched')
})
}
// function fetchPlanet (planet) {
// return Hq.fetchPlanet(planet.userName, planet.name)
// .then(function (res) {
// var _planet = res.body
// _planet.userName = planet.userName
//
// _planet.Snippets = _planet.Snippets.map(function (snippet) {
// snippet.type = 'snippet'
// return snippet
// })
//
// _planet.Blueprints = _planet.Blueprints.map(function (blueprint) {
// blueprint.type = 'blueprint'
// return blueprint
// })
//
// localStorage.setItem('planet-' + _planet.id, JSON.stringify(_planet))
// console.log('planet-' + _planet.id + ' fetched')
// })
// .catch(function (err) {
// console.error(err)
// })
// }
module.exports = React.createClass({
mixins: [ReactRouter.Navigation, ReactRouter.State],
mixins: [State, Navigation],
componentDidMount: function () {
this.unsubscribe = AuthStore.listen(this.onListen)
var user = JSON.parse(localStorage.getItem('user'))
if (user != null) {
AuthActions.refreshUser()
return
}
this.transitionTo('login')
},
componentWillUnmount: function () {
this.unsubscribe()
},
onListen: function (res) {
if (res == null || res.status == null) {
return
}
var user
if (res.status === 'loggedIn' || res.status === 'registered') {
user = res.data
var planet = user.Planets.length > 0 ? user.Planets[0] : null
if (planet == null) {
this.transitionTo('user', {userName: user.name})
return
if (this.isActive('root')) {
if (localStorage.getItem('currentUser') == null) {
this.transitionTo('login')
} else {
this.transitionTo('home')
}
this.transitionTo('planetHome', {userName: user.name, planetName: planet.name})
return
}
if (res.status === 'loggedOut') {
this.transitionTo('login')
return
}
if (res.status === 'userRefreshed') {
console.log('refreshed')
user = res.data
user.Planets.forEach(fetchPlanet)
return
}
Hq.getUser()
.then(function (res) {
localStorage.setItem('currentUser', JSON.stringify(res.body))
UserStore.Actions.update(res.body)
})
.catch(function (err) {
if (err.status === 401) {
localStorage.removeItem('currentUser')
this.transitionTo('login')
}
console.error(err)
}.bind(this))
},
render: function () {
// Redirect Login state
if (this.getPath() === '/') {
this.transitionTo('/login')
}
return (
<div className='Main'>
<RouteHandler/>