|
|
|
@ -2,7 +2,7 @@ import React, { PureComponent, Fragment } from 'react';
|
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
import { IntlProvider, addLocaleData } from 'react-intl';
|
|
|
|
|
import { List as ImmutableList, fromJS } from 'immutable';
|
|
|
|
|
import { fromJS } from 'immutable';
|
|
|
|
|
import { getLocale } from 'mastodon/locales';
|
|
|
|
|
import { getScrollbarWidth } from 'mastodon/utils/scrollbar';
|
|
|
|
|
import MediaGallery from 'mastodon/components/media_gallery';
|
|
|
|
@ -31,6 +31,7 @@ export default class MediaContainer extends PureComponent {
|
|
|
|
|
index: null,
|
|
|
|
|
time: null,
|
|
|
|
|
backgroundColor: null,
|
|
|
|
|
options: null,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
handleOpenMedia = (media, index) => {
|
|
|
|
@ -40,13 +41,15 @@ export default class MediaContainer extends PureComponent {
|
|
|
|
|
this.setState({ media, index });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
handleOpenVideo = (video, time) => {
|
|
|
|
|
const media = ImmutableList([video]);
|
|
|
|
|
handleOpenVideo = (options) => {
|
|
|
|
|
const { components } = this.props;
|
|
|
|
|
const { media } = JSON.parse(components[options.componetIndex].getAttribute('data-props'));
|
|
|
|
|
const mediaList = fromJS(media);
|
|
|
|
|
|
|
|
|
|
document.body.classList.add('with-modals--active');
|
|
|
|
|
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
|
|
|
|
|
|
|
|
|
|
this.setState({ media, time });
|
|
|
|
|
this.setState({ media: mediaList, options });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
handleCloseMedia = () => {
|
|
|
|
@ -58,6 +61,7 @@ export default class MediaContainer extends PureComponent {
|
|
|
|
|
index: null,
|
|
|
|
|
time: null,
|
|
|
|
|
backgroundColor: null,
|
|
|
|
|
options: null,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -83,6 +87,7 @@ export default class MediaContainer extends PureComponent {
|
|
|
|
|
...(hashtag ? { hashtag: fromJS(hashtag) } : {}),
|
|
|
|
|
|
|
|
|
|
...(componentName === 'Video' ? {
|
|
|
|
|
componetIndex: i,
|
|
|
|
|
onOpenVideo: this.handleOpenVideo,
|
|
|
|
|
} : {
|
|
|
|
|
onOpenMedia: this.handleOpenMedia,
|
|
|
|
@ -100,7 +105,9 @@ export default class MediaContainer extends PureComponent {
|
|
|
|
|
<MediaModal
|
|
|
|
|
media={this.state.media}
|
|
|
|
|
index={this.state.index || 0}
|
|
|
|
|
time={this.state.time}
|
|
|
|
|
currentTime={this.state.options?.startTime}
|
|
|
|
|
autoPlay={this.state.options?.autoPlay}
|
|
|
|
|
volume={this.state.options?.defaultVolume}
|
|
|
|
|
onClose={this.handleCloseMedia}
|
|
|
|
|
onChangeBackgroundColor={this.setBackgroundColor}
|
|
|
|
|
/>
|
|
|
|
|