1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-14 02:06:29 +00:00

リアルタイム(SocketIO)実装 / Markdown style改善

This commit is contained in:
Rokt33r
2015-09-08 15:28:36 +09:00
parent 51bd12c6cf
commit a3847ce1c9
24 changed files with 176 additions and 110 deletions

View File

@@ -6,6 +6,7 @@ var Link = ReactRouter.Link
var AuthFilter = require('../Mixins/AuthFilter')
var LinkedState = require('../Mixins/LinkedState')
var Hq = require('../Services/Hq')
var socket = require('../Services/socket')
module.exports = React.createClass({
mixins: [LinkedState, ReactRouter.Navigation, AuthFilter.OnlyGuest],
@@ -47,6 +48,7 @@ module.exports = React.createClass({
.then(function (res) {
localStorage.setItem('token', res.body.token)
localStorage.setItem('currentUser', JSON.stringify(res.body.user))
socket.reconnect()
this.transitionTo('userHome', {userName: res.body.user.name})
}.bind(this))

View File

@@ -9,6 +9,7 @@ var Navigation = ReactRouter.Navigation
var State = ReactRouter.State
var Hq = require('../Services/Hq')
var socket = require('../Services/socket')
var Modal = require('../Mixins/Modal')
@@ -17,7 +18,7 @@ var UserStore = require('../Stores/UserStore')
var ContactModal = require('../Components/ContactModal')
function fetchPlanet (userName, planetName) {
Hq.fetchPlanet(userName, planetName)
return Hq.fetchPlanet(userName, planetName)
.then(function (res) {
var planet = res.body
@@ -29,8 +30,9 @@ function fetchPlanet (userName, planetName) {
note.type = 'note'
})
console.log('planet-' + planet.id + ' fetched!')
localStorage.setItem('planet-' + planet.id, JSON.stringify(planet))
return planet
})
.catch(function (err) {
console.error(err)
@@ -61,15 +63,14 @@ module.exports = React.createClass({
Hq.getUser()
.then(function (res) {
var user = res.body
localStorage.setItem('currentUser', JSON.stringify(user))
UserStore.Actions.update(user)
user.Planets.forEach(function (planet) {
fetchPlanet(planet.userName, planet.name)
fetchPlanet(user.name, planet.name)
})
user.Teams.forEach(function (team) {
team.Planets.forEach(function (planet) {
fetchPlanet(planet.userName, planet.name)
fetchPlanet(team.name, planet.name)
})
})
})

View File

@@ -41,10 +41,10 @@ module.exports = React.createClass({
var planet = this.state.planet
switch (article.type) {
case 'code':
this.transitionTo('codes', {userName: planet.userName, planetName: planet.name, localId: article.localId})
this.transitionTo('codes', {userName: planet.Owner.name, planetName: planet.name, localId: article.localId})
break
case 'note':
this.transitionTo('notes', {userName: planet.userName, planetName: planet.name, localId: article.localId})
this.transitionTo('notes', {userName: planet.Owner.name, planetName: planet.name, localId: article.localId})
break
}
}
@@ -55,7 +55,7 @@ module.exports = React.createClass({
return
}
if (nextProps.params.userName !== this.state.planet.userName || nextProps.params.planetName !== this.state.planet.name) {
if (nextProps.params.userName !== this.state.planet.Owner.name || nextProps.params.planetName !== this.state.planet.name) {
this.setState({
planet: null
}, function () {
@@ -96,14 +96,14 @@ module.exports = React.createClass({
if (this.state.planet.name === planet.name) {
this.setState({planet: planet})
} else {
this.transitionTo('planetHome', {userName: planet.userName, planetName: planet.name})
this.transitionTo('planetHome', {userName: planet.Owner.name, planetName: planet.name})
}
}
break
case 'destroyed':
planet = res.data
if (this.state.planet.id === planet.id) {
this.transitionTo('userHome', {userName: this.state.planet.userName})
this.transitionTo('userHome', {userName: this.state.planet.Owner.name})
}
break
case 'codeUpdated':

View File

@@ -8,6 +8,7 @@ var AuthFilter = require('../Mixins/AuthFilter')
var LinkedState = require('../Mixins/LinkedState')
var ExternalLink = require('../Mixins/ExternalLink')
var Hq = require('../Services/Hq')
var socket = require('../Services/socket')
module.exports = React.createClass({
mixins: [LinkedState, ReactRouter.Navigation, AuthFilter.OnlyGuest, ExternalLink],
@@ -33,6 +34,7 @@ module.exports = React.createClass({
.then(function (res) {
localStorage.setItem('token', res.body.token)
localStorage.setItem('currentUser', JSON.stringify(res.body.user))
socket.reconnect()
this.transitionTo('userHome', {userName: res.body.user.name})
}.bind(this))

View File

@@ -230,7 +230,7 @@ module.exports = React.createClass({
var userPlanets = user.Planets.map(function (planet) {
return (
<li key={'planet-' + planet.id}>
<Link to='planet' params={{userName: planet.userName, planetName: planet.name}}>{planet.userName}/{planet.name}</Link>
<Link to='planet' params={{userName: user.name, planetName: planet.name}}>{user.name}/{planet.name}</Link>
&nbsp;{!planet.public ? (<i className='fa fa-lock'/>) : null}
</li>
)
@@ -288,7 +288,7 @@ module.exports = React.createClass({
var userPlanets = user.Planets.map(function (planet) {
return (
<li key={'planet-' + planet.id}>
<Link to='planet' params={{userName: planet.userName, planetName: planet.name}}>{planet.userName}/{planet.name}</Link>
<Link to='planet' params={{userName: user.name, planetName: planet.name}}>{user.name}/{planet.name}</Link>
&nbsp;{!planet.public ? (<i className='fa fa-lock'/>) : null}
</li>
)
@@ -311,7 +311,7 @@ module.exports = React.createClass({
var planets = (team.Planets == null ? [] : team.Planets).map(function (planet) {
return (
<li key={'planet-' + planet.id}>
<Link to='planet' params={{userName: planet.userName, planetName: planet.name}}>{planet.userName}/{planet.name}</Link>
<Link to='planet' params={{userName: team.name, planetName: planet.name}}>{team.name}/{planet.name}</Link>
&nbsp;{!planet.public ? (<i className='fa fa-lock'/>) : null}
</li>
)