mirror of
https://github.com/movie-web/movie-web.git
synced 2024-12-29 15:26:08 +00:00
feat: make volume scrollable with your mouse
This commit is contained in:
parent
c1731fdbc9
commit
67c86a270e
|
@ -47,8 +47,22 @@ export function Volume(props: Props) {
|
||||||
if (dragging) percentage = makePercentage(dragPercentage);
|
if (dragging) percentage = makePercentage(dragPercentage);
|
||||||
const percentageString = makePercentageString(percentage);
|
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 (
|
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="pointer-events-auto flex cursor-pointer items-center py-0">
|
||||||
<div className="px-4 text-2xl text-white" onClick={handleClick}>
|
<div className="px-4 text-2xl text-white" onClick={handleClick}>
|
||||||
<Icon icon={percentage > 0 ? Icons.VOLUME : Icons.VOLUME_X} />
|
<Icon icon={percentage > 0 ? Icons.VOLUME : Icons.VOLUME_X} />
|
||||||
|
|
Loading…
Reference in a new issue