/* global localStorage */ var React = require('react/addons') var ReactRouter = require('react-router') var Navigation = ReactRouter.Navigation var State = ReactRouter.State var Link = ReactRouter.Link var Reflux = require('reflux') var Modal = require('../Mixins/Modal') var UserStore = require('../Stores/UserStore') var AboutModal = require('./AboutModal') var PlanetCreateModal = require('./PlanetCreateModal') var TeamCreateModal = require('./TeamCreateModal') var ProfileImage = require('./ProfileImage') module.exports = React.createClass({ mixins: [Navigation, State, Reflux.listenTo(UserStore, 'onUserChange'), Modal], getInitialState: function () { return { isPlanetCreateModalOpen: false, currentUser: JSON.parse(localStorage.getItem('currentUser')) } }, onUserChange: function (res) { switch (res.status) { case 'userUpdated': if (this.state.currentUser.id === res.data.id) { this.setState({currentUser: res.data}) } break } }, openTeamCreateModal: function () { this.openModal(TeamCreateModal, {user: this.state.currentUser, transitionTo: this.transitionTo}) }, openAboutModal: function () { this.openModal(AboutModal) }, openPlanetCreateModal: function () { this.openModal(PlanetCreateModal, {transitionTo: this.transitionTo}) }, handleKeyDown: function (e) { if (this.state.currentUser == null) return if (e.metaKey && e.keyCode > 48 && e.keyCode < 58) { var planet = this.state.currentUser.Planets[e.keyCode - 49] if (planet != null) { this.transitionTo('planet', {userName: planet.userName, planetName: planet.name}) } e.preventDefault() } }, toggleProfilePopup: function () { this.openProfilePopup() }, openProfilePopup: function () { this.setState({isProfilePopupOpen: true}, function () { document.addEventListener('click', this.closeProfilePopup) }) }, closeProfilePopup: function () { document.removeEventListener('click', this.closeProfilePopup) this.setState({isProfilePopupOpen: false}) }, handleLogoutClick: function () { localStorage.removeItem('currentUser') localStorage.removeItem('token') this.transitionTo('login') }, render: function () { var params = this.getParams() if (this.state.currentUser == null) { return (