mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
- Planet, Team作成の時Error message表示 - MarkdownのCode blockの背景を薄い灰色にする - 権限なしのPlanetには - SignUpに規約/Privacyの外部リンク追加 - Loading画面追加 - Font 添付(Lato regular) - UserContainerでのTeam Label変更
77 lines
2.5 KiB
JavaScript
77 lines
2.5 KiB
JavaScript
var React = require('react/addons')
|
|
var ReactRouter = require('react-router')
|
|
var Navigation = ReactRouter.Navigation
|
|
|
|
var Modal = require('../Mixins/Modal')
|
|
|
|
var LaunchModal = require('../Components/LaunchModal')
|
|
|
|
module.exports = React.createClass({
|
|
mixins: [Modal, Navigation],
|
|
propTypes: {
|
|
planet: React.PropTypes.shape({
|
|
name: React.PropTypes.string,
|
|
Owner: React.PropTypes.shape({
|
|
id: React.PropTypes.number,
|
|
userType: React.PropTypes.string
|
|
})
|
|
}),
|
|
search: React.PropTypes.string,
|
|
toggleCodeFilter: React.PropTypes.func,
|
|
toggleNoteFilter: React.PropTypes.func,
|
|
currentUser: React.PropTypes.shape({
|
|
id: React.PropTypes.number,
|
|
userType: React.PropTypes.string,
|
|
Teams: React.PropTypes.array
|
|
})
|
|
},
|
|
getInitialState: function () {
|
|
return {
|
|
isLaunchModalOpen: false
|
|
}
|
|
},
|
|
openLaunchModal: function () {
|
|
this.openModal(LaunchModal, {planet: this.props.planet, transitionTo: this.transitionTo})
|
|
},
|
|
isMyPlanet: function () {
|
|
if (this.props.currentUser == null) return false
|
|
if (this.props.planet.Owner.userType === 'person' && this.props.planet.Owner.id !== this.props.currentUser.id) return false
|
|
if (this.props.planet.Owner.userType === 'team' && !this.props.currentUser.Teams.some(function (team) {
|
|
if (team.id === this.props.planet.Owner.id) return true
|
|
return false
|
|
}.bind(this))) return false
|
|
|
|
return true
|
|
|
|
},
|
|
render: function () {
|
|
var keywords = this.props.search.split(' ')
|
|
var usingCodeFilter = keywords.some(function (keyword) {
|
|
if (keyword === '$c') return true
|
|
return false
|
|
})
|
|
var usingNoteFilter = keywords.some(function (keyword) {
|
|
if (keyword === '$n') return true
|
|
return false
|
|
})
|
|
|
|
return (
|
|
<div className='PlanetNavigator'>
|
|
{this.isMyPlanet() ? (
|
|
<button onClick={this.openLaunchModal} className='launchButton btn-primary btn-block'>
|
|
<i className='fa fa-rocket fa-fw'/> Launch
|
|
</button>
|
|
) : null}
|
|
<nav className='articleFilters'>
|
|
<a className={usingCodeFilter && !usingNoteFilter ? 'active' : ''} onClick={this.props.toggleCodeFilter}>
|
|
<i className='fa fa-code fa-fw'/> Codes
|
|
</a>
|
|
<a className={!usingCodeFilter && usingNoteFilter ? 'active' : ''} onClick={this.props.toggleNoteFilter}>
|
|
<i className='fa fa-file-text-o fa-fw'/> Notes
|
|
</a>
|
|
</nav>
|
|
</div>
|
|
)
|
|
}
|
|
})
|