🔨 优化拖拽方案

This commit is contained in:
layyback
2023-04-01 16:59:48 +08:00
parent 1fa0b9fb9c
commit b42bc6461d
3 changed files with 64 additions and 41 deletions

View File

@@ -0,0 +1,36 @@
import { ipcRenderer } from 'electron';
const useDrag = () => {
let animationId: number;
let mouseX: number;
let mouseY: number;
let draggable = true;
const onMouseDown = (e) => {
draggable = true;
mouseX = e.clientX;
mouseY = e.clientY;
document.addEventListener('mouseup', onMouseUp);
animationId = requestAnimationFrame(moveWindow);
};
const onMouseUp = () => {
draggable = false;
document.removeEventListener('mouseup', onMouseUp);
cancelAnimationFrame(animationId);
};
const moveWindow = () => {
ipcRenderer.send('msg-trigger', {
type: 'windowMoving',
data: { mouseX, mouseY },
});
if (draggable) animationId = requestAnimationFrame(moveWindow);
};
return {
onMouseDown,
};
};
export default useDrag;