var React = require('react/addons') var ReactRouter = require('react-router') var ModalBase = require('../Components/ModalBase') var LaunchModal = require('../Components/LaunchModal') var CodeViewer = require('../Components/CodeViewer') var AuthStore = require('../Stores/AuthStore') var PlanetStore = require('../Stores/PlanetStore') var PlanetActions = require('../Actions/PlanetActions') var PlanetHeader = React.createClass({ propTypes: { currentPlanet: React.PropTypes.object, currentUser: React.PropTypes.object }, getInitialState: function () { return { isMenuDropDownOpen: false } }, toggleMenuDropDown: function () { this.setState({isMenuDropDownOpen: !this.state.isMenuDropDownOpen}, function () { if (this.state.isMenuDropDownOpen) { document.body.onclick = function () { this.setState({isMenuDropDownOpen: false}, function () { document.body.onclick = null }) }.bind(this) } }) }, interceptClick: function (e) { e.stopPropagation() }, render: function () { var currentPlanetName = this.props.currentPlanet.name return (
{currentPlanetName}
Planet Setting Manage member Delete Planet
Download Mac app
) } }) var PlanetNavigator = React.createClass({ propTypes: { currentPlanet: React.PropTypes.shape({ name: React.PropTypes.string }), currentUser: React.PropTypes.shape({ name: React.PropTypes.string }) }, getInitialState: function () { return { isLaunchModalOpen: false } }, openLaunchModal: function () { console.log('and...OPEN!!') this.setState({isLaunchModalOpen: true}) }, closeLaunchModal: function () { this.setState({isLaunchModalOpen: false}) }, submitLaunchModal: function (ret) { console.log(ret) this.setState({isLaunchModalOpen: false}) }, render: function () { return (
) } }) var PlanetArticleList = React.createClass({ mixins: [ReactRouter.Navigation, ReactRouter.State], propTypes: { planet: React.PropTypes.shape({ Snippets: React.PropTypes.array, Blueprints: React.PropTypes.array }) }, render: function () { var articles = this.props.planet.Snippets.map(function (snippet) { var tags = snippet.Tags.map(function (tag) { return ( #{tag.name} ) }) var params = this.getParams() var isActive = parseInt(params.localId, 10) === snippet.localId var handleClick = function () { this.transitionTo('snippets', { userName: params.userName, planetName: params.planetName, localId: snippet.localId }) }.bind(this) return (
  • {snippet.callSign}
    {snippet.description}
    {snippet.updatedAt}
    {tags}
  • ) }.bind(this)) return (
      {articles}
    ) } }) var PlanetArticleDetail = React.createClass({ propTypes: { snippet: React.PropTypes.object }, render: function () { var snippet = this.props.snippet var tags = snippet.Tags.map(function (tag) { return ( #{tag.name} ) }) return (
    {snippet.callSign} {snippet.updatedAt}
    {snippet.description}
    {tags}
    ) } }) module.exports = React.createClass({ mixins: [ReactRouter.Navigation, ReactRouter.State], propTypes: { params: React.PropTypes.object, planetName: React.PropTypes.string }, getInitialState: function () { return { currentPlanet: null } }, componentDidMount: function () { this.unsubscribe = PlanetStore.listen(this.onFetched) PlanetActions.fetchPlanet(this.props.params.userName + '/' + this.props.params.planetName) }, componentWillUnmount: function () { this.unsubscribe() }, onFetched: function (planet) { this.setState({currentPlanet: planet}, function () { if (planet.Snippets.length > 0) { this.transitionTo('snippets', { userName: this.props.params.userName, planetName: this.props.params.planetName, localId: planet.Snippets[0].localId}) } }) }, render: function () { var user = AuthStore.getUser() if (user == null) return (
    ) if (this.state.currentPlanet == null) return (
    ) var content = (
    No selected
    ) if (this.isActive('snippets')) { var localId = parseInt(this.props.params.localId, 10) this.state.currentPlanet.Snippets.some(function (_snippet) { if (localId === _snippet.localId) { content = ( ) return true } return false }) } return (
    {content}
    ) } })