From 15cdd4f70af20776c16f9d2d1ff23a9a20d8bfc2 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:04:34 +0200 Subject: [PATCH] refactor: simplify the logic --- src/routes/Player/Player.js | 4 +--- .../VolumeChangeIndicator.js | 23 +++++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 8ee614aaf..33bff1368 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -632,13 +632,11 @@ const Player = ({ urlParams, queryParams }) => { null } { - immersed ? + video.state.volume !== null && overlayHidden ? : null diff --git a/src/routes/Player/VolumeChangeIndicator/VolumeChangeIndicator.js b/src/routes/Player/VolumeChangeIndicator/VolumeChangeIndicator.js index 66c47fc0e..dffe64de9 100644 --- a/src/routes/Player/VolumeChangeIndicator/VolumeChangeIndicator.js +++ b/src/routes/Player/VolumeChangeIndicator/VolumeChangeIndicator.js @@ -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 ( @@ -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 };