From 1d44de08736747b02da01b57aa7f94541f046d5e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 28 May 2020 15:04:56 -0500 Subject: [PATCH] EditProfile: Unescape account params in componentWillMount() --- app/gabsocial/features/edit_profile/index.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/gabsocial/features/edit_profile/index.js b/app/gabsocial/features/edit_profile/index.js index 7ac387310..a57da8b36 100644 --- a/app/gabsocial/features/edit_profile/index.js +++ b/app/gabsocial/features/edit_profile/index.js @@ -40,6 +40,13 @@ const normalizeFields = fields => ( ) ); +// HTML unescape for special chars, eg
+const unescapeParams = (map, params) => ( + params.reduce((map, param) => ( + map.set(param, unescape(map.get(param))) + ), map) +); + export default @connect(mapStateToProps) @injectIntl class EditProfile extends ImmutablePureComponent { @@ -113,17 +120,13 @@ class EditProfile extends ImmutablePureComponent { const sourceData = account.get('source'); const accountData = account.merge(sourceData).delete('source'); const fields = normalizeFields(accountData.get('fields')); - const initialState = accountData.set('fields', fields); + const initialState = unescapeParams( + accountData.set('fields', fields), + ['display_name', 'note'] + ); this.setState(initialState.toObject()); } - componentDidMount() { - const display_name = unescape(this.state.display_name); - this.setState({ display_name: display_name }); - const note = unescape(this.state.note); - this.setState({ note: note }); - } - handleCheckboxChange = e => { this.setState({ [e.target.name]: e.target.checked }); }