Browse Source

Merge pull request #943 from qtchaos/scroll-volume

Allow users to change volume with scroll wheel
pull/929/head
William Oldham 1 year ago committed by GitHub
parent
commit
ba4713b130
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 16
      src/components/player/atoms/Volume.tsx

16
src/components/player/atoms/Volume.tsx

@ -47,8 +47,22 @@ export function Volume(props: Props) { @@ -47,8 +47,22 @@ export function Volume(props: Props) {
if (dragging) percentage = makePercentage(dragPercentage);
const percentageString = makePercentageString(percentage);
const handleWheel = useCallback(
(event: React.WheelEvent<HTMLDivElement>) => {
event.preventDefault();
let newVolume = volume - event.deltaY / 1000;
newVolume = Math.max(0, Math.min(newVolume, 1));
setVolume(newVolume);
},
[volume, setVolume],
);
return (
<div className={props.className} onMouseEnter={handleMouseEnter}>
<div
className={props.className}
onMouseEnter={handleMouseEnter}
onWheel={handleWheel}
>
<div className="pointer-events-auto flex cursor-pointer items-center py-0">
<div className="px-4 text-2xl text-white" onClick={handleClick}>
<Icon icon={percentage > 0 ? Icons.VOLUME : Icons.VOLUME_X} />

Loading…
Cancel
Save