UNPKG

tdesign-react

Version:
69 lines (65 loc) 2.62 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ import { _ as _typeof } from '../../_chunks/dep-c37cc2fd.js'; function useDialogDrag(props) { var contentClickRef = props.contentClickRef, dialogCardRef = props.dialogCardRef, canDraggable = props.canDraggable; var validWindow = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object"; var screenHeight = validWindow ? window.innerHeight || document.documentElement.clientHeight : void 0; var screenWidth = validWindow ? window.innerWidth || document.documentElement.clientWidth : void 0; var dialogOffset = { x: 0, y: 0 }; var onDialogMove = function onDialogMove(e) { var _dialogCardRef$curren = dialogCardRef.current, style = _dialogCardRef$curren.style, offsetWidth = _dialogCardRef$curren.offsetWidth, offsetHeight = _dialogCardRef$curren.offsetHeight; var diffX = e.clientX - dialogOffset.x; var diffY = e.clientY - dialogOffset.y; if (diffX < 0) diffX = 0; if (diffY < 0) diffY = 0; if (screenWidth - offsetWidth - diffX < 0) diffX = screenWidth - offsetWidth; if (screenHeight - offsetHeight - diffY < 0) diffY = screenHeight - offsetHeight; style.position = "absolute"; style.left = "".concat(diffX, "px"); style.top = "".concat(diffY, "px"); }; var _onDialogMoveEnd = function onDialogMoveEnd() { dialogCardRef.current.style.cursor = "default"; document.removeEventListener("mousemove", onDialogMove); document.removeEventListener("mouseup", _onDialogMoveEnd); }; var onDialogMoveStart = function onDialogMoveStart(e) { contentClickRef.current = true; if (canDraggable && e.currentTarget === e.target) { var _dialogCardRef$curren2 = dialogCardRef.current, offsetLeft = _dialogCardRef$curren2.offsetLeft, offsetTop = _dialogCardRef$curren2.offsetTop, offsetHeight = _dialogCardRef$curren2.offsetHeight, offsetWidth = _dialogCardRef$curren2.offsetWidth; if (offsetWidth > screenWidth || offsetHeight > screenHeight) return; dialogCardRef.current.style.cursor = "move"; var diffX = e.clientX - offsetLeft; var diffY = e.clientY - offsetTop; dialogOffset = { x: diffX, y: diffY }; document.addEventListener("mousemove", onDialogMove); document.addEventListener("mouseup", _onDialogMoveEnd); } }; return { onDialogMoveStart: onDialogMoveStart, onDialogMove: onDialogMove, onDialogMoveEnd: _onDialogMoveEnd }; } export { useDialogDrag as default }; //# sourceMappingURL=useDialogDrag.js.map