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

add Finder & update main.js & cleanup some old files

This commit is contained in:
Rokt33r
2015-07-28 23:56:50 +09:00
parent d20f005c5d
commit b1be92e6c9
26 changed files with 811 additions and 250 deletions

View File

@@ -1,47 +1,87 @@
/* global localStorage */
var React = require('react/addons')
var ReactRouter = require('react-router')
var RouteHandler = ReactRouter.RouteHandler
var request = require('superagent')
var AuthStore = require('../Stores/AuthStore')
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')
})
}
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
}
mixins: [ReactRouter.Navigation, ReactRouter.State],
componentDidMount: function () {
this.unsubscribe = AuthStore.listen(this.onListen)
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>
)
var user = JSON.parse(localStorage.getItem('user'))
if (user != null) {
user.Planets.forEach(fetchPlanet)
return
}
this.transitionTo('login')
},
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>
)
}
})