@ -21,6 +21,8 @@ import {
} from 'immutable' ;
} from 'immutable' ;
import { patchMe } from 'soapbox/actions/me' ;
import { patchMe } from 'soapbox/actions/me' ;
import { unescape } from 'lodash' ;
import { unescape } from 'lodash' ;
import { isVerified } from 'soapbox/utils/accounts' ;
import { getSoapboxConfig } from 'soapbox/actions/soapbox' ;
const messages = defineMessages ( {
const messages = defineMessages ( {
heading : { id : 'column.edit_profile' , defaultMessage : 'Edit profile' } ,
heading : { id : 'column.edit_profile' , defaultMessage : 'Edit profile' } ,
@ -31,9 +33,11 @@ const messages = defineMessages({
const mapStateToProps = state => {
const mapStateToProps = state => {
const me = state . get ( 'me' ) ;
const me = state . get ( 'me' ) ;
const soapbox = getSoapboxConfig ( state ) ;
return {
return {
account : state . getIn ( [ 'accounts' , me ] ) ,
account : state . getIn ( [ 'accounts' , me ] ) ,
maxFields : state . getIn ( [ 'instance' , 'pleroma' , 'metadata' , 'fields_limits' , 'max_fields' ] , 4 ) ,
maxFields : state . getIn ( [ 'instance' , 'pleroma' , 'metadata' , 'fields_limits' , 'max_fields' ] , 4 ) ,
verifiedCanEditName : soapbox . get ( 'verifiedCanEditName' ) ,
} ;
} ;
} ;
} ;
@ -60,6 +64,7 @@ class EditProfile extends ImmutablePureComponent {
intl : PropTypes . object . isRequired ,
intl : PropTypes . object . isRequired ,
account : ImmutablePropTypes . map ,
account : ImmutablePropTypes . map ,
maxFields : PropTypes . number ,
maxFields : PropTypes . number ,
verifiedCanEditName : PropTypes . bool ,
} ;
} ;
state = {
state = {
@ -160,8 +165,9 @@ class EditProfile extends ImmutablePureComponent {
}
}
render ( ) {
render ( ) {
const { intl , maxFields , account } = this . props ;
const { intl , maxFields , account , verifiedCanEditName } = this . props ;
const verified = account . getIn ( [ 'pleroma' , 'tags' ] , ImmutableList ( ) ) . includes ( 'verified' ) ;
const verified = isVerified ( account ) ;
const canEditName = verifiedCanEditName || ! verified ;
return (
return (
< Column icon = 'user' heading = { intl . formatMessage ( messages . heading ) } backBtnSlim >
< Column icon = 'user' heading = { intl . formatMessage ( messages . heading ) } backBtnSlim >
@ -169,13 +175,13 @@ class EditProfile extends ImmutablePureComponent {
< fieldset disabled = { this . state . isLoading } >
< fieldset disabled = { this . state . isLoading } >
< FieldsGroup >
< FieldsGroup >
< TextInput
< TextInput
className = { verified ? 'disabled' : ' '}
className = { canEditName ? '' : 'disabled '}
label = { < FormattedMessage id = 'edit_profile.fields.display_name_label' defaultMessage = 'Display name' / > }
label = { < FormattedMessage id = 'edit_profile.fields.display_name_label' defaultMessage = 'Display name' / > }
name = 'display_name'
name = 'display_name'
value = { this . state . display _name }
value = { this . state . display _name }
onChange = { this . handleTextChange }
onChange = { this . handleTextChange }
disabled = { verified }
disabled = { ! canEditName }
hint = { verified && intl . formatMessage ( messages . verified ) }
hint = { ! canEditName && intl . formatMessage ( messages . verified ) }
/ >
/ >
< SimpleTextarea
< SimpleTextarea
label = { < FormattedMessage id = 'edit_profile.fields.bio_label' defaultMessage = 'Bio' / > }
label = { < FormattedMessage id = 'edit_profile.fields.bio_label' defaultMessage = 'Bio' / > }