Updated Video component added aspect ratio for sizing
This commit is contained in:
parent
9b1f13487f
commit
449dd24b7f
@ -344,6 +344,7 @@ class Status extends ImmutablePureComponent {
|
|||||||
blurhash={video.get('blurhash')}
|
blurhash={video.get('blurhash')}
|
||||||
src={video.get('url')}
|
src={video.get('url')}
|
||||||
alt={video.get('description')}
|
alt={video.get('description')}
|
||||||
|
aspectRatio={video.getIn(['meta', 'small', 'aspect'])}
|
||||||
width={this.props.cachedMediaWidth}
|
width={this.props.cachedMediaWidth}
|
||||||
height={110}
|
height={110}
|
||||||
inline
|
inline
|
||||||
|
@ -38,6 +38,7 @@ export default class StatusCheckBox extends React.PureComponent {
|
|||||||
blurhash={video.get('blurhash')}
|
blurhash={video.get('blurhash')}
|
||||||
src={video.get('url')}
|
src={video.get('url')}
|
||||||
alt={video.get('description')}
|
alt={video.get('description')}
|
||||||
|
aspectRatio={video.getIn(['meta', 'small', 'aspect'])}
|
||||||
width={239}
|
width={239}
|
||||||
height={110}
|
height={110}
|
||||||
inline
|
inline
|
||||||
|
@ -111,6 +111,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
|
|||||||
blurhash={video.get('blurhash')}
|
blurhash={video.get('blurhash')}
|
||||||
src={video.get('url')}
|
src={video.get('url')}
|
||||||
alt={video.get('description')}
|
alt={video.get('description')}
|
||||||
|
aspectRatio={video.getIn(['meta', 'small', 'aspect'])}
|
||||||
width={300}
|
width={300}
|
||||||
height={150}
|
height={150}
|
||||||
inline
|
inline
|
||||||
|
@ -8,6 +8,7 @@ import { isFullscreen, requestFullscreen, exitFullscreen } from '../ui/util/full
|
|||||||
import { displayMedia } from '../../initial_state';
|
import { displayMedia } from '../../initial_state';
|
||||||
import Icon from 'gabsocial/components/icon';
|
import Icon from 'gabsocial/components/icon';
|
||||||
import { decode } from 'blurhash';
|
import { decode } from 'blurhash';
|
||||||
|
import { isPanoramic, isPortrait, minimumAspectRatio, maximumAspectRatio } from '../../utils/media_aspect_ratio';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
play: { id: 'video.play', defaultMessage: 'Play' },
|
play: { id: 'video.play', defaultMessage: 'Play' },
|
||||||
@ -107,6 +108,7 @@ class Video extends React.PureComponent {
|
|||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
blurhash: PropTypes.string,
|
blurhash: PropTypes.string,
|
||||||
link: PropTypes.node,
|
link: PropTypes.node,
|
||||||
|
aspectRatio: PropTypes.number,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
@ -373,7 +375,7 @@ class Video extends React.PureComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { preview, src, inline, startTime, onOpenVideo, onCloseVideo, intl, alt, detailed, sensitive, link } = this.props;
|
const { preview, src, inline, startTime, onOpenVideo, onCloseVideo, intl, alt, detailed, sensitive, link, aspectRatio } = this.props;
|
||||||
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
|
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
|
||||||
const progress = (currentTime / duration) * 100;
|
const progress = (currentTime / duration) * 100;
|
||||||
|
|
||||||
@ -384,8 +386,16 @@ class Video extends React.PureComponent {
|
|||||||
let { width, height } = this.props;
|
let { width, height } = this.props;
|
||||||
|
|
||||||
if (inline && containerWidth) {
|
if (inline && containerWidth) {
|
||||||
width = containerWidth;
|
width = containerWidth;
|
||||||
height = containerWidth / (16/9);
|
const minSize = containerWidth / (16/9);
|
||||||
|
|
||||||
|
if (isPanoramic(aspectRatio)) {
|
||||||
|
height = Math.max(Math.floor(containerWidth / maximumAspectRatio), minSize);
|
||||||
|
} else if (isPortrait(aspectRatio)) {
|
||||||
|
height = Math.max(Math.floor(containerWidth / minimumAspectRatio), minSize);
|
||||||
|
} else {
|
||||||
|
height = Math.floor(containerWidth / aspectRatio);
|
||||||
|
}
|
||||||
|
|
||||||
playerStyle.height = height;
|
playerStyle.height = height;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user