Fix audio and video items in account gallery in web UI (#14282)
* Fix audio and video items in account gallery in web UI - Fix audio items not using thumbnails - Fix video items not using custom thumbnails - Fix video items autoplaying like GIFs * Change audio and video items in account gallery to autoplay when opened in web UI * Fix code style issue
This commit is contained in:
		@@ -2,17 +2,27 @@ import React from 'react';
 | 
			
		||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
			
		||||
import PropTypes from 'prop-types';
 | 
			
		||||
import Audio from 'mastodon/features/audio';
 | 
			
		||||
import { connect } from 'react-redux';
 | 
			
		||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
			
		||||
import { FormattedMessage } from 'react-intl';
 | 
			
		||||
import { previewState } from './video_modal';
 | 
			
		||||
import classNames from 'classnames';
 | 
			
		||||
import Icon from 'mastodon/components/icon';
 | 
			
		||||
 | 
			
		||||
export default class AudioModal extends ImmutablePureComponent {
 | 
			
		||||
const mapStateToProps = (state, { status }) => ({
 | 
			
		||||
  account: state.getIn(['accounts', status.get('account')]),
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export default @connect(mapStateToProps)
 | 
			
		||||
class AudioModal extends ImmutablePureComponent {
 | 
			
		||||
 | 
			
		||||
  static propTypes = {
 | 
			
		||||
    media: ImmutablePropTypes.map.isRequired,
 | 
			
		||||
    status: ImmutablePropTypes.map,
 | 
			
		||||
    options: PropTypes.shape({
 | 
			
		||||
      autoPlay: PropTypes.bool,
 | 
			
		||||
    }),
 | 
			
		||||
    account: ImmutablePropTypes.map,
 | 
			
		||||
    onClose: PropTypes.func.isRequired,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +60,8 @@ export default class AudioModal extends ImmutablePureComponent {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    const { media, status } = this.props;
 | 
			
		||||
    const { media, status, account } = this.props;
 | 
			
		||||
    const options = this.props.options || {};
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div className='modal-root__modal audio-modal'>
 | 
			
		||||
@@ -60,10 +71,11 @@ export default class AudioModal extends ImmutablePureComponent {
 | 
			
		||||
            alt={media.get('description')}
 | 
			
		||||
            duration={media.getIn(['meta', 'original', 'duration'], 0)}
 | 
			
		||||
            height={150}
 | 
			
		||||
            poster={media.get('preview_url') || status.getIn(['account', 'avatar_static'])}
 | 
			
		||||
            poster={media.get('preview_url') || account.get('avatar_static')}
 | 
			
		||||
            backgroundColor={media.getIn(['meta', 'colors', 'background'])}
 | 
			
		||||
            foregroundColor={media.getIn(['meta', 'colors', 'foreground'])}
 | 
			
		||||
            accentColor={media.getIn(['meta', 'colors', 'accent'])}
 | 
			
		||||
            autoPlay={options.autoPlay}
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user