diff options
author | Starfall <us@starfall.systems> | 2023-04-14 19:22:47 -0500 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2023-04-14 19:22:47 -0500 |
commit | 4fe1689de43f4404eb9530fcfbcbfb26d6c1c13a (patch) | |
tree | 6811b845bb7f4966b10dcefa3dea404246f161c7 /app/javascript/mastodon/components/gifv.js | |
parent | 65c1e53a32cabcdbb7bca57002bb0f6acdebe07e (diff) | |
parent | bed63f6dae0879ac840066b031229e0d139089cd (diff) |
Diffstat (limited to 'app/javascript/mastodon/components/gifv.js')
-rw-r--r-- | app/javascript/mastodon/components/gifv.js | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.js deleted file mode 100644 index b775e5200..000000000 --- a/app/javascript/mastodon/components/gifv.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -export default class GIFV extends React.PureComponent { - - static propTypes = { - src: PropTypes.string.isRequired, - alt: PropTypes.string, - width: PropTypes.number, - height: PropTypes.number, - onClick: PropTypes.func, - }; - - state = { - loading: true, - }; - - handleLoadedData = () => { - this.setState({ loading: false }); - } - - componentWillReceiveProps (nextProps) { - if (nextProps.src !== this.props.src) { - this.setState({ loading: true }); - } - } - - handleClick = e => { - const { onClick } = this.props; - - if (onClick) { - e.stopPropagation(); - onClick(); - } - } - - render () { - const { src, width, height, alt } = this.props; - const { loading } = this.state; - - return ( - <div className='gifv' style={{ position: 'relative' }}> - {loading && ( - <canvas - width={width} - height={height} - role='button' - tabIndex='0' - aria-label={alt} - title={alt} - onClick={this.handleClick} - /> - )} - - <video - src={src} - role='button' - tabIndex='0' - aria-label={alt} - title={alt} - muted - loop - autoPlay - playsInline - onClick={this.handleClick} - onLoadedData={this.handleLoadedData} - style={{ position: loading ? 'absolute' : 'static', top: 0, left: 0 }} - /> - </div> - ); - } - -} |