From a02c93c5b08656bb6d668845e7e93607bd95d835 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 5 May 2021 23:41:02 +0200 Subject: [PATCH] Fix display of toots without text content (#15665) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix display of toots without text content - fixes CWs from other implementations not showing up if toot has no text contents - fixes the “Read more” thread indicator not showing up on threaded toots with no text contents * Move content-less toot's CW to conents --- app/javascript/mastodon/actions/importer/normalizer.js | 7 +++++++ app/javascript/mastodon/components/status_content.js | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/actions/importer/normalizer.js b/app/javascript/mastodon/actions/importer/normalizer.js index 087f264910..abd5681d47 100644 --- a/app/javascript/mastodon/actions/importer/normalizer.js +++ b/app/javascript/mastodon/actions/importer/normalizer.js @@ -62,6 +62,13 @@ export function normalizeStatus(status, normalOldStatus) { normalStatus.spoilerHtml = normalOldStatus.get('spoilerHtml'); normalStatus.hidden = normalOldStatus.get('hidden'); } else { + // If the status has a CW but no contents, treat the CW as if it were the + // status' contents, to avoid having a CW toggle with seemingly no effect. + if (normalStatus.spoiler_text && !normalStatus.content) { + normalStatus.content = normalStatus.spoiler_text; + normalStatus.spoiler_text = ''; + } + const spoilerText = normalStatus.spoiler_text || ''; const searchContent = ([spoilerText, status.content].concat((status.poll && status.poll.options) ? status.poll.options.map(option => option.title) : [])).join('\n\n').replace(//g, '\n').replace(/<\/p>

/g, '\n\n'); const emojiMap = makeEmojiMap(normalStatus); diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js index 35bd505142..bf21a9fd6b 100644 --- a/app/javascript/mastodon/components/status_content.js +++ b/app/javascript/mastodon/components/status_content.js @@ -170,10 +170,6 @@ export default class StatusContent extends React.PureComponent { render () { const { status } = this.props; - if (status.get('content').length === 0) { - return null; - } - const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); const renderViewThread = this.props.showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);