diff --git a/app/soapbox/features/edit_profile/index.js b/app/soapbox/features/edit_profile/index.js index 5445ff30a..d25cc85e3 100644 --- a/app/soapbox/features/edit_profile/index.js +++ b/app/soapbox/features/edit_profile/index.js @@ -20,6 +20,8 @@ import { import { patchMe } from 'soapbox/actions/me'; import { unescape } from 'lodash'; +const MAX_FIELDS = 4; // TODO: Make this dynamic by the instance + const messages = defineMessages({ heading: { id: 'column.edit_profile', defaultMessage: 'Edit profile' }, metaFieldLabel: { id: 'edit_profile.fields.meta_fields.label_placeholder', defaultMessage: 'Label' }, @@ -31,13 +33,12 @@ const mapStateToProps = state => { const me = state.get('me'); return { account: state.getIn(['accounts', me]), - maxFields: state.getIn(['instance', 'pleroma', 'metadata', 'fieldsLimits', 'maxFields']), }; }; -// Forces fields to be maxFields size, filling empty values -const normalizeFields = (fields, maxFields) => ( - ImmutableList(fields).setSize(maxFields).map(field => +// Forces fields to be MAX_SIZE, filling empty values +const normalizeFields = fields => ( + ImmutableList(fields).setSize(MAX_FIELDS).map(field => field ? field : ImmutableMap({ name: '', value: '' }) ) ); @@ -57,11 +58,11 @@ class EditProfile extends ImmutablePureComponent { dispatch: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, account: ImmutablePropTypes.map, - maxFields: PropTypes.number, }; state = { isLoading: false, + fields: normalizeFields(Array.from({ length: MAX_FIELDS })), } constructor(props) { @@ -69,7 +70,7 @@ class EditProfile extends ImmutablePureComponent { const initialState = props.account.withMutations(map => { map.merge(map.get('source')); map.delete('source'); - map.set('fields', normalizeFields(map.get('fields'), props.maxFields)); + map.set('fields', normalizeFields(map.get('fields'))); unescapeParams(map, ['display_name', 'note']); }); this.state = initialState.toObject(); @@ -156,7 +157,7 @@ class EditProfile extends ImmutablePureComponent { } render() { - const { intl, maxFields, account } = this.props; + const { intl, account } = this.props; const verified = account.get('pleroma').get('tags').includes('verified'); return ( @@ -218,7 +219,7 @@ class EditProfile extends ImmutablePureComponent {
- + { this.state.fields.map((field, i) => ( diff --git a/app/soapbox/reducers/instance.js b/app/soapbox/reducers/instance.js index 549f95207..980951031 100644 --- a/app/soapbox/reducers/instance.js +++ b/app/soapbox/reducers/instance.js @@ -12,7 +12,6 @@ const nodeinfoToInstance = nodeinfo => { account_activation_required: nodeinfo.getIn(['metadata', 'accountActivationRequired']), features: nodeinfo.getIn(['metadata', 'features']), federation: nodeinfo.getIn(['metadata', 'federation']), - fieldsLimits: nodeinfo.getIn(['metadata', 'fieldsLimits']), }), }), });