1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-15 18:56:22 +00:00

Contact Modal追加

This commit is contained in:
Rokt33r
2015-08-20 01:30:57 +09:00
parent 0b4cfd6563
commit 3d9a631786
22 changed files with 645 additions and 278 deletions

View File

@@ -1,5 +1,7 @@
/* global localStorage */
var ipc = require('ipc')
var React = require('react/addons')
var ReactRouter = require('react-router')
var RouteHandler = ReactRouter.RouteHandler
@@ -8,35 +10,45 @@ var State = ReactRouter.State
var Hq = require('../Services/Hq')
var Modal = require('../Mixins/Modal')
var UserStore = require('../Stores/UserStore')
// 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)
// })
// }
var ContactModal = require('../Components/ContactModal')
function fetchPlanet (userName, planetName) {
Hq.fetchPlanet(userName, planetName)
.then(function (res) {
var planet = res.body
planet.Codes.forEach(function (code) {
code.type = 'code'
})
planet.Notes.forEach(function (note) {
note.type = 'note'
})
console.log('planet-' + planet.id + ' fetched!')
localStorage.setItem('planet-' + planet.id, JSON.stringify(planet))
})
.catch(function (err) {
console.error(err)
})
}
module.exports = React.createClass({
mixins: [State, Navigation],
mixins: [State, Navigation, Modal],
getInitialState: function () {
return {
updateAvailable: false
}
},
componentDidMount: function () {
ipc.on('update-available', function (message) {
this.setState({updateAvailable: true})
}.bind(this))
if (this.isActive('root')) {
if (localStorage.getItem('currentUser') == null) {
this.transitionTo('login')
@@ -49,9 +61,19 @@ module.exports = React.createClass({
Hq.getUser()
.then(function (res) {
console.log(res.body)
localStorage.setItem('currentUser', JSON.stringify(res.body))
UserStore.Actions.update(res.body)
var user = res.body
localStorage.setItem('currentUser', JSON.stringify(user))
UserStore.Actions.update(user)
user.Planets.forEach(function (planet) {
fetchPlanet(planet.userName, planet.name)
})
user.Teams.forEach(function (team) {
team.Planets.forEach(function (planet) {
fetchPlanet(planet.userName, planet.name)
})
})
})
.catch(function (err) {
if (err.status === 401) {
@@ -63,9 +85,19 @@ module.exports = React.createClass({
console.error(err)
}.bind(this))
},
updateApp: function () {
ipc.send('update-app', 'Deal with it.')
},
openContactModal: function () {
this.openModal(ContactModal)
},
render: function () {
return (
<div className='Main'>
{this.state.updateAvailable ? (
<button onClick={this.updateApp} className='appUpdateButton'><i className='fa fa-cloud-download'/> Update available!</button>
) : null}
<button onClick={this.openContactModal} className='contactButton'><i className='fa fa-paper-plane-o'/></button>
<RouteHandler/>
</div>
)