@ -23,6 +23,7 @@ class Item extends React.PureComponent {
onClick : PropTypes . func . isRequired ,
displayWidth : PropTypes . number ,
visible : PropTypes . bool . isRequired ,
autoplay : PropTypes . bool ,
} ;
static defaultProps = {
@ -48,9 +49,13 @@ class Item extends React.PureComponent {
}
}
getAutoPlay ( ) {
return this . props . autoplay || autoPlayGif ;
}
hoverToPlay ( ) {
const { attachment } = this . props ;
return ! autoPlayGif && attachment . get ( 'type' ) === 'gifv' ;
return ! this . getAutoPlay ( ) && attachment . get ( 'type' ) === 'gifv' ;
}
handleClick = ( e ) => {
@ -201,7 +206,7 @@ class Item extends React.PureComponent {
< / a >
) ;
} else if ( attachment . get ( 'type' ) === 'gifv' ) {
const autoPlay = ! isIOS ( ) && autoPlayGif ;
const autoPlay = ! isIOS ( ) && this . getAutoPlay ( ) ;
thumbnail = (
< div className = { classNames ( 'media-gallery__gifv' , { autoplay : autoPlay } ) } >
@ -248,6 +253,7 @@ class MediaGallery extends React.PureComponent {
defaultWidth : PropTypes . number ,
cacheWidth : PropTypes . func ,
visible : PropTypes . bool ,
autoplay : PropTypes . bool ,
onToggleVisibility : PropTypes . func ,
} ;
@ -297,7 +303,7 @@ class MediaGallery extends React.PureComponent {
}
render ( ) {
const { media , intl , sensitive , height , defaultWidth , standalone } = this . props ;
const { media , intl , sensitive , height , defaultWidth , standalone , autoplay } = this . props ;
const { visible } = this . state ;
const width = this . state . width || defaultWidth ;
@ -320,9 +326,9 @@ class MediaGallery extends React.PureComponent {
const uncached = media . every ( attachment => attachment . get ( 'type' ) === 'unknown' ) ;
if ( standalone && this . isFullSizeEligible ( ) ) {
children = < Item standalone onClick= { this . handleClick } attachment = { media . get ( 0 ) } displayWidth = { width } visible = { visible } / > ;
children = < Item standalone autoplay= { autoplay } onClick= { this . handleClick } attachment = { media . get ( 0 ) } displayWidth = { width } visible = { visible } / > ;
} else {
children = media . take ( 4 ) . map ( ( attachment , i ) => < Item key = { attachment . get ( 'id' ) } onClick= { this . handleClick } attachment = { attachment } index = { i } size = { size } displayWidth = { width } visible = { visible || uncached } / > ) ;
children = media . take ( 4 ) . map ( ( attachment , i ) => < Item key = { attachment . get ( 'id' ) } autoplay= { autoplay } onClick= { this . handleClick } attachment = { attachment } index = { i } size = { size } displayWidth = { width } visible = { visible || uncached } / > ) ;
}
if ( uncached ) {