Skip to content

Commit

Permalink
refactor: simplify the logic
Browse files Browse the repository at this point in the history
  • Loading branch information
kKaskak committed Jan 17, 2024
1 parent 69e90e8 commit 15cdd4f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
4 changes: 1 addition & 3 deletions src/routes/Player/Player.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
23 changes: 11 additions & 12 deletions src/routes/Player/VolumeChangeIndicator/VolumeChangeIndicator.js
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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
};

0 comments on commit 15cdd4f

Please sign in to comment.