mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-24 17:36:00 +00:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
export default function splitterDrag(node, axes) {
|
|
let resizeStart = null;
|
|
|
|
const handleResizeDown = e => {
|
|
resizeStart = e[axes];
|
|
document.addEventListener('mousemove', handleResizeMove, true);
|
|
document.addEventListener('mouseup', handleResizeEnd, true);
|
|
};
|
|
|
|
const handleResizeMove = e => {
|
|
e.preventDefault();
|
|
const diff = e[axes] - resizeStart;
|
|
resizeStart = e[axes];
|
|
node.dispatchEvent(
|
|
new CustomEvent('resizeSplitter', {
|
|
detail: diff,
|
|
})
|
|
);
|
|
};
|
|
const handleResizeEnd = e => {
|
|
e.preventDefault();
|
|
resizeStart = null;
|
|
document.removeEventListener('mousemove', handleResizeMove, true);
|
|
document.removeEventListener('mouseup', handleResizeEnd, true);
|
|
};
|
|
|
|
node.addEventListener('mousedown', handleResizeDown);
|
|
|
|
return {
|
|
destroy() {
|
|
node.removeEventListener('mousedown', handleResizeDown);
|
|
if (resizeStart != null) {
|
|
document.removeEventListener('mousemove', handleResizeMove, true);
|
|
document.removeEventListener('mouseup', handleResizeEnd, true);
|
|
}
|
|
},
|
|
};
|
|
}
|