~cytrogen/masto-fe

f05fb51ecb34fd5ef86fad861e16cfc959fe0b27 — Ivan Rodriguez 3 years ago 10f0de4
Fix status title for statuses without text (#24359)

M app/javascript/mastodon/features/status/index.jsx => app/javascript/mastodon/features/status/index.jsx +6 -4
@@ 69,6 69,7 @@ const messages = defineMessages({
  redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },
  revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
  hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },
  statusTitleWithAttachments: { id: 'status.title.with_attachments', defaultMessage: '{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}' },
  detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
  replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
  replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },


@@ 166,13 167,14 @@ const truncate = (str, num) => {
  }
};

const titleFromStatus = status => {
const titleFromStatus = (intl, status) => {
  const displayName = status.getIn(['account', 'display_name']);
  const username = status.getIn(['account', 'username']);
  const prefix = displayName.trim().length === 0 ? username : displayName;
  const user = displayName.trim().length === 0 ? username : displayName;
  const text = status.get('search_index');
  const attachmentCount = status.get('media_attachments').size;

  return `${prefix}: "${truncate(text, 30)}"`;
  return text ? `${user}: "${truncate(text, 30)}"` : intl.formatMessage(messages.statusTitleWithAttachments, { user, attachmentCount });
};

class Status extends ImmutablePureComponent {


@@ 670,7 672,7 @@ class Status extends ImmutablePureComponent {
        </ScrollContainer>

        <Helmet>
          <title>{titleFromStatus(status)}</title>
          <title>{titleFromStatus(intl, status)}</title>
          <meta name='robots' content={(isLocal && isIndexable) ? 'all' : 'noindex'} />
        </Helmet>
      </Column>

M app/javascript/mastodon/locales/defaultMessages.json => app/javascript/mastodon/locales/defaultMessages.json +4 -0
@@ 3733,6 3733,10 @@
        "id": "status.show_less_all"
      },
      {
        "defaultMessage": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
        "id": "status.title.with_attachments"
      },
      {
        "defaultMessage": "Detailed conversation view",
        "id": "status.detailed_status"
      },

M app/javascript/mastodon/locales/en.json => app/javascript/mastodon/locales/en.json +1 -0
@@ 598,6 598,7 @@
  "status.show_more": "Show more",
  "status.show_more_all": "Show more for all",
  "status.show_original": "Show original",
  "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}",
  "status.translate": "Translate",
  "status.translated_from_with": "Translated from {lang} using {provider}",
  "status.uncached_media_warning": "Not available",

M app/javascript/mastodon/locales/es-MX.json => app/javascript/mastodon/locales/es-MX.json +1 -0
@@ 597,6 597,7 @@
  "status.show_more": "Mostrar más",
  "status.show_more_all": "Mostrar más para todo",
  "status.show_original": "Mostrar original",
  "status.title.with_attachments": "{user} publicó {attachmentCount, plural, one {un archivo adjunto} other {{attachmentCount} archivos adjuntos}}",
  "status.translate": "Traducir",
  "status.translated_from_with": "Traducido del {lang} usando {provider}",
  "status.uncached_media_warning": "No disponible",