diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-08-11 17:49:10 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-08-20 13:14:59 +0200 |
commit | 4f074b68ba4b9b91a7989f3f7d64ab29cf42214c (patch) | |
tree | 5d63d6f54c327bb3b0feecae7019a7fcd2e0cd9f /app/javascript/flavours | |
parent | 0e62c38b029c834363580868f7d5d486e565ad93 (diff) |
[Glitch] Fix crash if a notification contains an unprocessed media attachment
Port 0c24c865b785a557f43125c976090e271247a2b1 to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
Diffstat (limited to 'app/javascript/flavours')
-rw-r--r-- | app/javascript/flavours/glitch/components/attachment_list.js | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/app/javascript/flavours/glitch/components/attachment_list.js b/app/javascript/flavours/glitch/components/attachment_list.js index 68d8d29c7..68b80b19f 100644 --- a/app/javascript/flavours/glitch/components/attachment_list.js +++ b/app/javascript/flavours/glitch/components/attachment_list.js @@ -2,6 +2,8 @@ import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { FormattedMessage } from 'react-intl'; +import classNames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; const filename = url => url.split('/').pop().split('#')[0].split('?')[0]; @@ -16,29 +18,13 @@ export default class AttachmentList extends ImmutablePureComponent { render () { const { media, compact } = this.props; - if (compact) { - return ( - <div className='attachment-list compact'> - <ul className='attachment-list__list'> - {media.map(attachment => { - const displayUrl = attachment.get('remote_url') || attachment.get('url'); - - return ( - <li key={attachment.get('id')}> - <a href={displayUrl} target='_blank' rel='noopener noreferrer'><Icon id='link' /> {filename(displayUrl)}</a> - </li> - ); - })} - </ul> - </div> - ); - } - return ( - <div className='attachment-list'> - <div className='attachment-list__icon'> - <Icon id='link' /> - </div> + <div className={classNames('attachment-list', { compact })}> + {!compact && ( + <div className='attachment-list__icon'> + <Icon id='link' /> + </div> + )} <ul className='attachment-list__list'> {media.map(attachment => { @@ -46,7 +32,11 @@ export default class AttachmentList extends ImmutablePureComponent { return ( <li key={attachment.get('id')}> - <a href={displayUrl} target='_blank' rel='noopener noreferrer'>{filename(displayUrl)}</a> + <a href={displayUrl} target='_blank' rel='noopener noreferrer'> + {compact && <Icon id='link' />} + {compact && ' ' } + {displayUrl ? filename(displayUrl) : <FormattedMessage id='attachments_list.unprocessed' defaultMessage='(unprocessed)' />} + </a> </li> ); })} |