mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
refactor: simplify the logic
This commit is contained in:
parent
69e90e8d8b
commit
15cdd4f70a
2 changed files with 12 additions and 15 deletions
|
|
@ -632,13 +632,11 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
null
|
||||
}
|
||||
{
|
||||
immersed ?
|
||||
video.state.volume !== null && overlayHidden ?
|
||||
<VolumeChangeIndicator
|
||||
muted={video.state.muted}
|
||||
volume={video.state.volume}
|
||||
onVolumeChangeRequested={onVolumeChangeRequested}
|
||||
immersed={immersed}
|
||||
menusOpen={menusOpen}
|
||||
/>
|
||||
:
|
||||
null
|
||||
|
|
|
|||
|
|
@ -8,23 +8,26 @@ const PropTypes = require('prop-types');
|
|||
const styles = require('./styles');
|
||||
const { useBinaryState } = require('stremio/common');
|
||||
|
||||
const VolumeChangeIndicator = React.memo(({ muted, onVolumeChangeRequested, volume, menusOpen, immersed }) => {
|
||||
|
||||
const VolumeChangeIndicator = React.memo(({ muted, onVolumeChangeRequested, volume }) => {
|
||||
const [volumeIndicatorOpen, openVolumeIndicator, closeVolumeIndicator] = useBinaryState(false);
|
||||
const volumeChangeTimeout = React.useRef(null);
|
||||
const prevVolume = React.useRef(volume);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (immersed && !menusOpen) openVolumeIndicator();
|
||||
if (prevVolume.current !== volume) {
|
||||
openVolumeIndicator();
|
||||
if (volumeChangeTimeout.current) clearTimeout(volumeChangeTimeout.current);
|
||||
volumeChangeTimeout.current = setTimeout(closeVolumeIndicator, 1500);
|
||||
}
|
||||
|
||||
if (volumeChangeTimeout.current) clearTimeout(volumeChangeTimeout.current);
|
||||
volumeChangeTimeout.current = setTimeout(closeVolumeIndicator, 1500);
|
||||
}, [volume, menusOpen, immersed]);
|
||||
prevVolume.current = volume;
|
||||
}, [volume]);
|
||||
|
||||
React.useEffect(() => {
|
||||
return () => {
|
||||
if (volumeChangeTimeout.current) clearTimeout(volumeChangeTimeout.current);
|
||||
};
|
||||
}, [volume]);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
|
|
@ -54,9 +57,5 @@ module.exports = VolumeChangeIndicator;
|
|||
VolumeChangeIndicator.propTypes = {
|
||||
muted: PropTypes.bool,
|
||||
onVolumeChangeRequested: PropTypes.func,
|
||||
volume: PropTypes.number,
|
||||
menusOpen: PropTypes.bool,
|
||||
immersed: PropTypes.bool,
|
||||
openVolumeIndicator: PropTypes.func,
|
||||
closeVolumeIndicator: PropTypes.func
|
||||
volume: PropTypes.number
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue