import { Map as ImmutableMap } from 'immutable'; import { normalizeStatus } from 'soapbox/normalizers/status'; import { calculateStatus } from 'soapbox/reducers/statuses'; import { makeGetAccount } from 'soapbox/selectors'; import { RootState } from 'soapbox/store'; export const buildStatus = (state: RootState, scheduledStatus: ImmutableMap) => { const getAccount = makeGetAccount(); const me = state.me as string; const params = scheduledStatus.get('params'); const account = getAccount(state, me); const status = ImmutableMap({ account, content: params.get('text', '').replace(new RegExp('\n', 'g'), '
'), /* eslint-disable-line no-control-regex */ created_at: params.get('scheduled_at'), id: scheduledStatus.get('id'), in_reply_to_id: params.get('in_reply_to_id'), media_attachments: scheduledStatus.get('media_attachments'), poll: params.get('poll'), sensitive: params.get('sensitive'), uri: `/scheduled_statuses/${scheduledStatus.get('id')}`, url: `/scheduled_statuses/${scheduledStatus.get('id')}`, visibility: params.get('visibility'), }); return calculateStatus(normalizeStatus(status)); };