import PropTypes from "prop-types"; import { Component } from "react"; import classNames from "classnames"; import { connect } from "react-redux"; import { removePictureInPicture } from "flavours/glitch/actions/picture_in_picture"; import Audio from "flavours/glitch/features/audio"; import Video from "flavours/glitch/features/video"; import Footer from "./components/footer"; import Header from "./components/header"; const mapStateToProps = state => ({ ...state.get("picture_in_picture"), left: state.getIn(["local_settings", "media", "pop_in_position"]) === "left", }); class PictureInPicture extends Component { static propTypes = { statusId: PropTypes.string, accountId: PropTypes.string, type: PropTypes.string, src: PropTypes.string, muted: PropTypes.bool, volume: PropTypes.number, currentTime: PropTypes.number, poster: PropTypes.string, backgroundColor: PropTypes.string, foregroundColor: PropTypes.string, accentColor: PropTypes.string, dispatch: PropTypes.func.isRequired, left: PropTypes.bool, }; handleClose = () => { const { dispatch } = this.props; dispatch(removePictureInPicture()); }; render () { const { type, src, currentTime, accountId, statusId, left } = this.props; if (!currentTime) { return null; } let player; if (type === "video") { player = (