import React from "react" import Button from "misago/components/button" import Form from "misago/components/form" import FormGroup from "misago/components/form-group" import Loader from "misago/components/modal-loader" import YesNoSwitch from "misago/components/yes-no-switch" import ModalMessage from "misago/components/modal-message" import { updateAvatar } from "misago/reducers/users" import ajax from "misago/services/ajax" import snackbar from "misago/services/snackbar" import store from "misago/services/store" export default class extends Form { constructor(props) { super(props) this.state = { isLoaded: false, isLoading: false, error: null, is_avatar_locked: "", avatar_lock_user_message: "", avatar_lock_staff_message: "" } } componentDidMount() { ajax.get(this.props.profile.api.moderate_avatar).then( options => { this.setState({ isLoaded: true, is_avatar_locked: options.is_avatar_locked, avatar_lock_user_message: options.avatar_lock_user_message || "", avatar_lock_staff_message: options.avatar_lock_staff_message || "" }) }, rejection => { this.setState({ isLoaded: true, error: rejection.detail }) } ) } clean() { if (this.isValid()) { return true } else { snackbar.error(this.validate().username[0]) return false } } send() { return ajax.post(this.props.profile.api.moderate_avatar, { is_avatar_locked: this.state.is_avatar_locked, avatar_lock_user_message: this.state.avatar_lock_user_message, avatar_lock_staff_message: this.state.avatar_lock_staff_message }) } handleSuccess(apiResponse) { store.dispatch(updateAvatar(this.props.profile, apiResponse.avatar_hash)) snackbar.success(gettext("Avatar controls have been changed.")) } getFormBody() { return (
) } getModalBody() { if (this.state.error) { return (