* Make fullscreen video in detailed status plays in fullscreen (Fix #5160) * Directly assign the initial state
This commit is contained in:
		
							parent
							
								
									d8cd9000d9
								
							
						
					
					
						commit
						864c4d869f
					
				
					 1 changed files with 20 additions and 1 deletions
				
			
		| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
import React from 'react';
 | 
					import React from 'react';
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import classNames from 'classnames';
 | 
				
			||||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
					import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			||||||
import { fetchStatus } from '../../actions/statuses';
 | 
					import { fetchStatus } from '../../actions/statuses';
 | 
				
			||||||
import MissingIndicator from '../../components/missing_indicator';
 | 
					import MissingIndicator from '../../components/missing_indicator';
 | 
				
			||||||
| 
						 | 
					@ -30,6 +31,7 @@ import { defineMessages, injectIntl } from 'react-intl';
 | 
				
			||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { HotKeys } from 'react-hotkeys';
 | 
					import { HotKeys } from 'react-hotkeys';
 | 
				
			||||||
import { boostModal, deleteModal } from '../../initial_state';
 | 
					import { boostModal, deleteModal } from '../../initial_state';
 | 
				
			||||||
 | 
					import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../../features/ui/util/fullscreen';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
 | 
					  deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
 | 
				
			||||||
| 
						 | 
					@ -65,10 +67,18 @@ export default class Status extends ImmutablePureComponent {
 | 
				
			||||||
    intl: PropTypes.object.isRequired,
 | 
					    intl: PropTypes.object.isRequired,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  state = {
 | 
				
			||||||
 | 
					    fullscreen: false,
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  componentWillMount () {
 | 
					  componentWillMount () {
 | 
				
			||||||
    this.props.dispatch(fetchStatus(this.props.params.statusId));
 | 
					    this.props.dispatch(fetchStatus(this.props.params.statusId));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  componentDidMount () {
 | 
				
			||||||
 | 
					    attachFullscreenListener(this.onFullScreenChange);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  componentWillReceiveProps (nextProps) {
 | 
					  componentWillReceiveProps (nextProps) {
 | 
				
			||||||
    if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
 | 
					    if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
 | 
				
			||||||
      this._scrolledIntoView = false;
 | 
					      this._scrolledIntoView = false;
 | 
				
			||||||
| 
						 | 
					@ -248,9 +258,18 @@ export default class Status extends ImmutablePureComponent {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  componentWillUnmount () {
 | 
				
			||||||
 | 
					    detachFullscreenListener(this.onFullScreenChange);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  onFullScreenChange = () => {
 | 
				
			||||||
 | 
					    this.setState({ fullscreen: isFullscreen() });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  render () {
 | 
					  render () {
 | 
				
			||||||
    let ancestors, descendants;
 | 
					    let ancestors, descendants;
 | 
				
			||||||
    const { status, ancestorsIds, descendantsIds } = this.props;
 | 
					    const { status, ancestorsIds, descendantsIds } = this.props;
 | 
				
			||||||
 | 
					    const { fullscreen } = this.state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (status === null) {
 | 
					    if (status === null) {
 | 
				
			||||||
      return (
 | 
					      return (
 | 
				
			||||||
| 
						 | 
					@ -284,7 +303,7 @@ export default class Status extends ImmutablePureComponent {
 | 
				
			||||||
        <ColumnBackButton />
 | 
					        <ColumnBackButton />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <ScrollContainer scrollKey='thread'>
 | 
					        <ScrollContainer scrollKey='thread'>
 | 
				
			||||||
          <div className='scrollable detailed-status__wrapper' ref={this.setRef}>
 | 
					          <div className={classNames('scrollable', 'detailed-status__wrapper', { fullscreen })} ref={this.setRef}>
 | 
				
			||||||
            {ancestors}
 | 
					            {ancestors}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <HotKeys handlers={handlers}>
 | 
					            <HotKeys handlers={handlers}>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue