import React from 'react'; import AvatarIndex from 'misago/components/change-avatar/index'; // jshint ignore:line import Loader from 'misago/components/modal-loader'; // jshint ignore:line import misago from 'misago/index'; import { updateAvatar } from 'misago/reducers/users'; // jshint ignore:line import ajax from 'misago/services/ajax'; import store from 'misago/services/store'; // jshint ignore:line export class ChangeAvatarError extends React.Component { getErrorReason() { if (this.props.reason) { /* jshint ignore:start */ return

; /* jshint ignore:end */ } else { return null; } } render() { /* jshint ignore:start */ return

remove_circle_outline

{this.props.message}

{this.getErrorReason()}
; /* jshint ignore:end */ } } export default class extends React.Component { componentDidMount() { Promise.all([ ajax.get(misago.get('user').avatar_api_url) ]).then((resolutions) => { this.setState({ 'component': AvatarIndex, 'options': resolutions[0] }); }, (rejection) => { this.showError(rejection); }); } /* jshint ignore:start */ showError = (error) => { this.setState({ error }); } updateAvatar = (avatarHash, options) => { store.dispatch(updateAvatar(this.props.user, avatarHash)); this.setState({ 'component': AvatarIndex, options }); } showIndex = () => { this.setState({ 'component': AvatarIndex }); } /* jshint ignore:end */ getBody() { if (this.state) { if (this.state.error) { /* jshint ignore:start */ return ; /* jshint ignore:end */ } else { /* jshint ignore:start */ return ; /* jshint ignore:end */ } } else { /* jshint ignore:start */ return ; /* jshint ignore:end */ } } getClassName() { if (this.state && this.state.error) { return "modal-dialog modal-message modal-change-avatar"; } else { return "modal-dialog modal-change-avatar"; } } render() { /* jshint ignore:start */ return

{gettext("Change your avatar")}

{this.getBody()}
; /* jshint ignore:end */ } } export function select(state) { return { 'user': state.auth.user }; }