tdesign-react
Version:
TDesign Component for React
70 lines (66 loc) • 2.23 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../../_chunks/dep-48805ab8.js';
import { useState } from 'react';
import { f as getFileList } from '../../_chunks/dep-8918af14.js';
import '../../_chunks/dep-026a4c6b.js';
import '../../_chunks/dep-b908e1fe.js';
function useDrag(props) {
var accept = props.accept;
var _useState = useState(null),
_useState2 = _slicedToArray(_useState, 2),
target = _useState2[0],
setTarget = _useState2[1];
var _useState3 = useState(false),
_useState4 = _slicedToArray(_useState3, 2),
dragActive = _useState4[0],
setDragActive = _useState4[1];
var handleDrop = function handleDrop(event) {
var _props$onDrop;
event.preventDefault();
setDragActive(false);
var files = event.dataTransfer.files;
var dragFiles = getFileList(files, accept);
if (dragFiles.length) {
var _props$onDragFileChan;
(_props$onDragFileChan = props.onDragFileChange) === null || _props$onDragFileChan === void 0 || _props$onDragFileChan.call(props, dragFiles);
}
(_props$onDrop = props.onDrop) === null || _props$onDrop === void 0 || _props$onDrop.call(props, {
e: event
});
};
var handleDragenter = function handleDragenter(event) {
var _props$onDragenter;
event.preventDefault();
setTarget(event.target);
(_props$onDragenter = props.onDragenter) === null || _props$onDragenter === void 0 || _props$onDragenter.call(props, {
e: event
});
setDragActive(true);
};
var handleDragleave = function handleDragleave(event) {
var _props$onDragleave;
if (event.target !== target) return;
event.preventDefault();
(_props$onDragleave = props.onDragleave) === null || _props$onDragleave === void 0 || _props$onDragleave.call(props, {
e: event
});
setDragActive(false);
};
var handleDragover = function handleDragover(event) {
event.preventDefault();
};
return {
target: target,
dragActive: dragActive,
handleDrop: handleDrop,
handleDragenter: handleDragenter,
handleDragleave: handleDragleave,
handleDragover: handleDragover
};
}
export { useDrag as default };
//# sourceMappingURL=useDrag.js.map