diff --git a/app/soapbox/features/scheduled_statuses/builder.js b/app/soapbox/features/scheduled_statuses/builder.js
index 2849f5539..6b3d1a4f8 100644
--- a/app/soapbox/features/scheduled_statuses/builder.js
+++ b/app/soapbox/features/scheduled_statuses/builder.js
@@ -13,31 +13,13 @@ export const buildStatus = (state, scheduledStatus) => {
const status = {
account,
- application: null,
- bookmarked: false,
- card: null,
content: params.get('text', '').replace(new RegExp('\n', 'g'), '
'), /* eslint-disable-line no-control-regex */
created_at: params.get('scheduled_at'),
- emojis: [],
- favourited: false,
- favourites_count: 0,
id: scheduledStatus.get('id'),
- in_reply_to_account_id: null,
in_reply_to_id: params.get('in_reply_to_id'),
- language: null,
media_attachments: scheduledStatus.get('media_attachments'),
- mentions: [],
- muted: false,
- pinned: false,
poll: params.get('poll'),
- reblog: null,
- reblogged: false,
- reblogs_count: 0,
- replies_count: 0,
sensitive: params.get('sensitive'),
- spoiler_text: '',
- tags: [],
- text: null,
uri: `/scheduled_statuses/${scheduledStatus.get('id')}`,
url: `/scheduled_statuses/${scheduledStatus.get('id')}`,
visibility: params.get('visibility'),
diff --git a/app/soapbox/features/ui/util/pending_status_builder.js b/app/soapbox/features/ui/util/pending_status_builder.js
index 433436d56..293aabfb5 100644
--- a/app/soapbox/features/ui/util/pending_status_builder.js
+++ b/app/soapbox/features/ui/util/pending_status_builder.js
@@ -1,5 +1,9 @@
import { fromJS } from 'immutable';
-import { OrderedSet as ImmutableOrderedSet, Map as ImmutableMap } from 'immutable';
+import {
+ OrderedSet as ImmutableOrderedSet,
+ Map as ImmutableMap,
+ List as ImmutableList,
+} from 'immutable';
import { normalizeStatus } from 'soapbox/normalizers/status';
import { calculateStatus } from 'soapbox/reducers/statuses';
@@ -30,34 +34,14 @@ export const buildStatus = (state, pendingStatus, idempotencyKey) => {
const status = {
account,
- application: null,
- bookmarked: false,
- card: null,
content: pendingStatus.get('status', '').replace(new RegExp('\n', 'g'), '
'), /* eslint-disable-line no-control-regex */
- created_at: new Date(),
- emojis: [],
- favourited: false,
- favourites_count: 0,
id: `ę«pending-${idempotencyKey}`,
- in_reply_to_account_id: null,
in_reply_to_id: pendingStatus.get('in_reply_to_id'),
- language: null,
- media_attachments: pendingStatus.get('media_ids').map(id => (ImmutableMap({ id }))),
+ media_attachments: pendingStatus.get('media_ids', ImmutableList()).map(id => ImmutableMap({ id })),
mentions,
- muted: false,
- pinned: false,
poll: pendingStatus.get('poll', null),
quote: pendingStatus.get('quote_id', null),
- reblog: null,
- reblogged: false,
- reblogs_count: 0,
- replies_count: 0,
sensitive: pendingStatus.get('sensitive', false),
- spoiler_text: '',
- tags: [],
- text: null,
- uri: '',
- url: '',
visibility: pendingStatus.get('visibility', 'public'),
};
diff --git a/app/soapbox/normalizers/status.js b/app/soapbox/normalizers/status.js
index f6f8fccb3..288a07498 100644
--- a/app/soapbox/normalizers/status.js
+++ b/app/soapbox/normalizers/status.js
@@ -4,9 +4,28 @@ import { accountToMention } from 'soapbox/utils/accounts';
// Some backends can return null, or omit these required fields
const baseStatus = ImmutableMap({
+ application: null,
+ bookmarked: false,
+ card: null,
+ created_at: new Date(),
emojis: ImmutableList(),
- spoiler_text: '',
+ favourited: false,
+ favourites_count: 0,
+ in_reply_to_account_id: null,
+ in_reply_to_id: null,
+ language: null,
mentions: ImmutableList(),
+ muted: false,
+ pinned: false,
+ reblog: null,
+ reblogged: false,
+ reblogs_count: 0,
+ replies_count: 0,
+ spoiler_text: '',
+ tags: ImmutableList(),
+ uri: '',
+ url: '',
+ visibility: 'public',
});
const mergeDefined = (oldVal, newVal) => oldVal === undefined ? newVal : oldVal;