/* global localStorage */ var React = require('react/addons') var Hq = require('../Services/Hq') var LinkedState = require('../Mixins/LinkedState') var UserStore = require('../Stores/UserStore') module.exports = React.createClass({ mixins: [LinkedState], propTypes: { user: React.PropTypes.shape({ name: React.PropTypes.string, profileName: React.PropTypes.string, email: React.PropTypes.string }) }, getInitialState: function () { var user = this.props.user return { currentTab: 'userInfo', user: { profileName: user.profileName, email: user.email }, userSubmitStatus: null, password: { currentPassword: '', newPassword: '', passwordConfirmation: '' }, passwordSubmitStatus: null } }, selectTab: function (tabName) { return function () { this.setState({currentTab: tabName}) }.bind(this) }, saveUserInfo: function () { this.setState({ userSubmitStatus: 'sending' }, function () { Hq.updateUser(this.props.user.name, this.state.user) .then(function (res) { this.setState({userSubmitStatus: 'done'}, function () { localStorage.setItem('currentUser', JSON.stringify(res.body)) UserStore.Actions.update(res.body) }) }.bind(this)) .catch(function (err) { console.error(err) this.setState({userSubmitStatus: 'error'}) }.bind(this)) }) }, savePassword: function () { this.setState({ passwordSubmitStatus: 'sending' }, function () { console.log(this.state.password) Hq.changePassword(this.state.password) .then(function (res) { this.setState({ passwordSubmitStatus: 'done', currentPassword: '', newPassword: '', passwordConfirmation: '' }) }.bind(this)) .catch(function (err) { console.error(err) this.setState({ passwordSubmitStatus: 'error', currentPassword: '', newPassword: '', passwordConfirmation: '' }) }.bind(this)) }) }, render: function () { var content switch (this.state.currentTab) { case 'userInfo': content = this.renderUserInfoTab() break case 'password': content = this.renderPasswordTab() break } return (
Edit profile
{content}
) }, renderUserInfoTab: function () { return (
on Sending...
Connection failed.. Try again.
Successfully done!!
) }, renderPasswordTab: function () { return (
on Sending...
Connection failed.. Try again.
Successfully done!!
) } })