var React = require('react/addons') var ReactRouter = require('react-router') var Link = ReactRouter.Link var Modal = require('../Mixins/Modal') var ExternalLink = require('../Mixins/ExternalLink') var PlanetSettingModal = require('./PlanetSettingModal') module.exports = React.createClass({ mixins: [ReactRouter.State, Modal, ExternalLink], propTypes: { search: React.PropTypes.string, fetchPlanet: React.PropTypes.func, onSearchChange: React.PropTypes.func, currentPlanet: React.PropTypes.object }, getInitialState: function () { return { search: '' } }, componentDidMount: function () { var search = React.findDOMNode(this.refs.search) search.addEventListener('keydown', this.handleSearchKeyDown) }, componentWillUnmount: function () { var search = React.findDOMNode(this.refs.search) search.removeEventListener('keydown', this.handleSearchKeyDown) }, handleSearchKeyDown: function (e) { if (e.keyCode === 38 || e.keyCode === 40) { var search = React.findDOMNode(this.refs.search) search.blur() e.preventDefault() } if (e.keyCode !== 27 && (e.keyCode !== 13 || !e.metaKey)) { e.stopPropagation() } }, openPlanetSettingModal: function () { this.openModal(PlanetSettingModal, {planet: this.props.currentPlanet}) }, refresh: function () { this.props.fetchPlanet() }, render: function () { var currentPlanetName = this.props.currentPlanet.name var currentUserName = this.props.currentPlanet.Owner.name return (