From 660188c9008761ae38d0e82dea841f7d90e199f9 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Tue, 11 Aug 2020 23:25:17 +0200 Subject: [PATCH] Fix local-only flag not necessarily being preserved on delete & redraft --- app/javascript/flavours/glitch/reducers/compose.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index a2cac88ac..daf857541 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -501,8 +501,11 @@ export default function compose(state = initialState, action) { case COMPOSE_DOODLE_SET: return state.mergeIn(['doodle'], action.options); case REDRAFT: + const do_not_federate = action.status.get('local_only', false); + let text = action.raw_text || unescapeHTML(expandMentions(action.status)); + if (do_not_federate) text = text.replace(/ ?👁\ufe0f?\u200b?$/, ''); return state.withMutations(map => { - map.set('text', action.raw_text || unescapeHTML(expandMentions(action.status))); + map.set('text', text); map.set('content_type', action.content_type || 'text/plain'); map.set('in_reply_to', action.status.get('in_reply_to_id')); map.set('privacy', action.status.get('visibility')); @@ -511,6 +514,10 @@ export default function compose(state = initialState, action) { map.set('caretPosition', null); map.set('idempotencyKey', uuid()); map.set('sensitive', action.status.get('sensitive')); + map.update( + 'advanced_options', + map => map.merge(new ImmutableMap({ do_not_federate })) + ); if (action.status.get('spoiler_text').length > 0) { map.set('spoiler', true);