activate chromecast button when chromecast became available

This commit is contained in:
nklhrstv 2020-05-15 18:11:37 +03:00
parent 14d251af92
commit ba70f6c88c

View file

@ -5,6 +5,7 @@ const PropTypes = require('prop-types');
const classnames = require('classnames');
const Icon = require('stremio-icons/dom');
const { Button } = require('stremio/common');
const { useServices } = require('stremio/services');
const SeekBar = require('./SeekBar');
const VolumeSlider = require('./VolumeSlider');
const styles = require('./styles');
@ -28,6 +29,8 @@ const ControlBar = ({
onToggleInfoMenu,
...props
}) => {
const { chromecast } = useServices();
const [chromecastActive, setChromecastActive] = React.useState(() => chromecast.active);
const onSubtitlesButtonMouseDown = React.useCallback((event) => {
event.nativeEvent.subtitlesMenuClosePrevented = true;
}, []);
@ -66,6 +69,15 @@ const ControlBar = ({
onToggleInfoMenu();
}
}, [onToggleInfoMenu]);
React.useEffect(() => {
const onStateChanged = () => {
setChromecastActive(chromecast.active);
};
chromecast.on('stateChanged', onStateChanged);
return () => {
chromecast.off('stateChanged', onStateChanged);
};
}, []);
return (
<div {...props} className={classnames(className, styles['control-bar-container'])}>
<SeekBar
@ -102,7 +114,7 @@ const ControlBar = ({
<Button className={classnames(styles['control-bar-button'], { 'disabled': typeof info !== 'object' || info === null })} tabIndex={-1} onMouseDown={onInfoButtonMouseDown} onClick={onInfoButtonClick}>
<Icon className={styles['icon']} icon={'ic_info'} />
</Button>
<Button className={classnames(styles['control-bar-button'], 'disabled')} tabIndex={-1}>
<Button className={classnames(styles['control-bar-button'], { 'disabled': !chromecastActive })} tabIndex={-1}>
<Icon className={styles['icon']} icon={'ic_cast'} />
</Button>
<Button className={classnames(styles['control-bar-button'], { 'disabled': !Array.isArray(subtitlesTracks) || subtitlesTracks.length === 0 })} tabIndex={-1} onMouseDown={onSubtitlesButtonMouseDown} onClick={onSubtitlesButtonClick}>