kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Mastodon: fix edit profile source rendering
rodzic
be0f252351
commit
d2a6a90757
|
@ -41,15 +41,22 @@ const messages = defineMessages({
|
||||||
metaFieldContent: { id: 'edit_profile.fields.meta_fields.content_placeholder', defaultMessage: 'Content' },
|
metaFieldContent: { id: 'edit_profile.fields.meta_fields.content_placeholder', defaultMessage: 'Content' },
|
||||||
verified: { id: 'edit_profile.fields.verified_display_name', defaultMessage: 'Verified users may not update their display name' },
|
verified: { id: 'edit_profile.fields.verified_display_name', defaultMessage: 'Verified users may not update their display name' },
|
||||||
success: { id: 'edit_profile.success', defaultMessage: 'Profile saved!' },
|
success: { id: 'edit_profile.success', defaultMessage: 'Profile saved!' },
|
||||||
|
bioPlaceholder: { id: 'edit_profile.fields.bio_placeholder', defaultMessage: 'Tell us about yourself.' },
|
||||||
|
displayNamePlaceholder: { id: 'edit_profile.fields.display_name_placeholder', defaultMessage: 'Name' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => {
|
const mapStateToProps = state => {
|
||||||
const me = state.get('me');
|
const me = state.get('me');
|
||||||
|
const account = state.getIn(['accounts', me]);
|
||||||
const soapbox = getSoapboxConfig(state);
|
const soapbox = getSoapboxConfig(state);
|
||||||
const meta = state.getIn(['meta', 'pleroma']);
|
|
||||||
const account = state.getIn(['accounts', me]).set('pleroma', meta);
|
const baseProfile = ImmutableMap({
|
||||||
|
pleroma: state.getIn(['meta', 'pleroma', me]),
|
||||||
|
source: state.getIn(['meta', 'source', me]),
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
account,
|
account: baseProfile.merge(account),
|
||||||
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'),
|
verifiedCanEditName: soapbox.get('verifiedCanEditName'),
|
||||||
supportsEmailList: getFeatures(state.get('instance')).emailList,
|
supportsEmailList: getFeatures(state.get('instance')).emailList,
|
||||||
|
@ -88,18 +95,21 @@ class EditProfile extends ImmutablePureComponent {
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
const { account } = this.props;
|
const { account, maxFields } = this.props;
|
||||||
|
|
||||||
const strangerNotifications = account.getIn(['pleroma', 'notification_settings', 'block_from_strangers']);
|
const strangerNotifications = account.getIn(['pleroma', 'notification_settings', 'block_from_strangers']);
|
||||||
const acceptsEmailList = account.getIn(['pleroma', 'accepts_email_list']);
|
const acceptsEmailList = account.getIn(['pleroma', 'accepts_email_list']);
|
||||||
|
|
||||||
const initialState = account.withMutations(map => {
|
const initialState = account.withMutations(map => {
|
||||||
map.merge(map.get('source'));
|
map.merge(map.get('source'));
|
||||||
map.delete('source');
|
map.delete('source');
|
||||||
map.set('fields', normalizeFields(map.get('fields'), Math.min(props.maxFields, 4)));
|
map.set('fields', normalizeFields(map.get('fields'), Math.min(maxFields, 4)));
|
||||||
map.set('stranger_notifications', strangerNotifications);
|
map.set('stranger_notifications', strangerNotifications);
|
||||||
map.set('accepts_email_list', acceptsEmailList);
|
map.set('accepts_email_list', acceptsEmailList);
|
||||||
map.set('hide_network', hidesNetwork(account));
|
map.set('hide_network', hidesNetwork(account));
|
||||||
unescapeParams(map, ['display_name', 'bio']);
|
unescapeParams(map, ['display_name', 'bio']);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.state = initialState.toObject();
|
this.state = initialState.toObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +118,7 @@ class EditProfile extends ImmutablePureComponent {
|
||||||
return account.merge(ImmutableMap({
|
return account.merge(ImmutableMap({
|
||||||
header: this.state.header,
|
header: this.state.header,
|
||||||
avatar: this.state.avatar,
|
avatar: this.state.avatar,
|
||||||
display_name: this.state.display_name,
|
display_name: this.state.display_name || account.get('username'),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,6 +235,7 @@ class EditProfile extends ImmutablePureComponent {
|
||||||
<TextInput
|
<TextInput
|
||||||
className={canEditName ? '' : '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' />}
|
||||||
|
placeholder={intl.formatMessage(messages.displayNamePlaceholder)}
|
||||||
name='display_name'
|
name='display_name'
|
||||||
value={this.state.display_name}
|
value={this.state.display_name}
|
||||||
onChange={this.handleTextChange}
|
onChange={this.handleTextChange}
|
||||||
|
@ -233,6 +244,7 @@ class EditProfile extends ImmutablePureComponent {
|
||||||
/>
|
/>
|
||||||
<SimpleTextarea
|
<SimpleTextarea
|
||||||
label={<FormattedMessage id='edit_profile.fields.bio_label' defaultMessage='Bio' />}
|
label={<FormattedMessage id='edit_profile.fields.bio_label' defaultMessage='Bio' />}
|
||||||
|
placeholder={intl.formatMessage(messages.bioPlaceholder)}
|
||||||
name='note'
|
name='note'
|
||||||
autoComplete='off'
|
autoComplete='off'
|
||||||
value={this.state.note}
|
value={this.state.note}
|
||||||
|
|
|
@ -8,9 +8,15 @@ const initialState = ImmutableMap();
|
||||||
|
|
||||||
const importAccount = (state, account) => {
|
const importAccount = (state, account) => {
|
||||||
return state.withMutations(state => {
|
return state.withMutations(state => {
|
||||||
|
const accountId = account.get('id');
|
||||||
|
|
||||||
if (account.has('pleroma')) {
|
if (account.has('pleroma')) {
|
||||||
const pleroPrefs = account.get('pleroma').delete('settings_store');
|
const pleroPrefs = account.get('pleroma').delete('settings_store');
|
||||||
state.mergeIn(['pleroma'], pleroPrefs);
|
state.setIn(['pleroma', accountId], pleroPrefs);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (account.has('source')) {
|
||||||
|
state.setIn(['source', accountId], account.get('source'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Ładowanie…
Reference in New Issue