Files
readest/apps/readest-app/src/app/reader/hooks/useDragBar.ts
T
2024-11-10 18:53:31 +01:00

29 lines
768 B
TypeScript

import { useCallback } from 'react';
const useDragBar = (handleDragMove: (e: MouseEvent) => void) => {
const handleMouseMove = useCallback(
(e: MouseEvent) => {
handleDragMove(e);
},
[handleDragMove],
);
const handleMouseUp = useCallback(() => {
document.removeEventListener('mousemove', handleMouseMove);
document.removeEventListener('mouseup', handleMouseUp);
}, [handleMouseMove]);
const handleMouseDown = useCallback(
(e: React.MouseEvent<HTMLDivElement>) => {
e.preventDefault();
document.addEventListener('mousemove', handleMouseMove);
document.addEventListener('mouseup', handleMouseUp);
},
[handleMouseMove, handleMouseUp],
);
return { handleMouseDown };
};
export default useDragBar;