[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>
This commit is contained in:
		
							parent
							
								
									0e62c38b02
								
							
						
					
					
						commit
						4f074b68ba
					
				@ -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>
 | 
			
		||||
            );
 | 
			
		||||
          })}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user