Mastodon: fix edit profile source rendering

reply-to-ui
Alex Gleason 2021-08-23 16:03:35 -05:00
rodzic be0f252351
commit d2a6a90757
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
2 zmienionych plików z 25 dodań i 7 usunięć

Wyświetl plik

@ -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}

Wyświetl plik

@ -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'));
} }
}); });
}; };