From 7877fce7bad01467ffd54a85365e002cb498ff2c Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 23 Feb 2022 18:02:24 -0500 Subject: [PATCH] normalizeStatus: refactor baseStatus --- app/soapbox/normalizers/status.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/soapbox/normalizers/status.js b/app/soapbox/normalizers/status.js index 084b20102..02525ec3b 100644 --- a/app/soapbox/normalizers/status.js +++ b/app/soapbox/normalizers/status.js @@ -3,12 +3,16 @@ import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; import { accountToMention } from 'soapbox/utils/accounts'; // Some backends can return null, or omit these required fields +const baseStatus = ImmutableMap({ + emojis: ImmutableList(), + spoiler_text: '', + mentions: ImmutableList(), +}); + +const mergeDefined = (oldVal, newVal) => oldVal === undefined ? newVal : oldVal; + const setRequiredFields = status => { - return status.merge({ - emojis: status.get('emojis') || ImmutableList(), - spoiler_text: status.get('spoiler_text') || '', - mentions: status.get('mentions') || ImmutableList(), - }); + return status.mergeDeepWith(mergeDefined, baseStatus); }; // Ensure attachments have required fields