tdesign-react
Version:
TDesign Component for React
75 lines (69 loc) • 2.38 kB
JavaScript
/**
* tdesign v1.16.6
* (c) 2026 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var slicedToArray = require('../../_chunks/dep-3281986a.js');
var React = require('react');
var utils = require('../../_chunks/dep-7af43b33.js');
require('../../_chunks/dep-54373955.js');
require('../../_chunks/dep-ef5bfcf1.js');
require('../../_chunks/dep-ed99b2c6.js');
function useDrag(props) {
var accept = props.accept;
var _useState = React.useState(null),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
target = _useState2[0],
setTarget = _useState2[1];
var _useState3 = React.useState(false),
_useState4 = slicedToArray._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 = utils.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
};
}
exports["default"] = useDrag;
//# sourceMappingURL=useDrag.js.map