tdesign-react
Version:
TDesign Component for React
74 lines (68 loc) • 2.34 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var slicedToArray = require('../../_chunks/dep-5cb0d66d.js');
var React = require('react');
var utils = require('../../_chunks/dep-d56617af.js');
require('../../_chunks/dep-737b8bd8.js');
require('../../_chunks/dep-05f87b98.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