import React from "react" import AvatarIndex from "misago/components/change-avatar/index" import AvatarCrop from "misago/components/change-avatar/crop" import AvatarUpload from "misago/components/change-avatar/upload" import AvatarGallery from "misago/components/change-avatar/gallery" import Loader from "misago/components/modal-loader" import { updateAvatar } from "misago/reducers/users" import ajax from "misago/services/ajax" import store from "misago/services/store" export class ChangeAvatarError extends React.Component { getErrorReason() { if (this.props.reason) { return

} else { return null } } render() { return (

remove_circle_outline

{this.props.message}

{this.getErrorReason()}
) } } export default class extends React.Component { componentDidMount() { ajax.get(this.props.user.api.avatar).then( options => { this.setState({ component: AvatarIndex, options: options, error: null }) }, rejection => { this.showError(rejection) } ) } showError = error => { this.setState({ error }) } showIndex = () => { this.setState({ component: AvatarIndex }) } showUpload = () => { this.setState({ component: AvatarUpload }) } showCrop = () => { this.setState({ component: AvatarCrop }) } showGallery = () => { this.setState({ component: AvatarGallery }) } completeFlow = options => { store.dispatch(updateAvatar(this.props.user, options.avatars)) this.setState({ component: AvatarIndex, options }) } getBody() { if (this.state) { if (this.state.error) { return ( ) } else { return ( ) } } else { return } } getClassName() { if (this.state && this.state.error) { return "modal-dialog modal-message modal-change-avatar" } else { return "modal-dialog modal-change-avatar" } } render() { return (

{gettext("Change your avatar")}

{this.getBody()}
) } } export function select(state) { return { user: state.auth.user } }