UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

110 lines (106 loc) 3.64 kB
"use client"; const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs'); const require_ref = require('../../utils/ref.cjs'); const require_utils_index = require('../../utils/index.cjs'); const require_use_field_props = require('../field/use-field-props.cjs'); let react = require("react"); react = require_rolldown_runtime.__toESM(react); let file_selector = require("file-selector"); file_selector = require_rolldown_runtime.__toESM(file_selector); let react_dropzone = require("react-dropzone"); react_dropzone = require_rolldown_runtime.__toESM(react_dropzone); //#region src/components/dropzone/use-dropzone.ts const useDropzone = (props = {}) => { const { props: { id, name, accept, autoFocus = false, disabled, getFilesFromEvent = file_selector.fromEvent, loading, maxFiles = 0, maxSize = Infinity, minSize = 0, multiple = false, noClick = false, noDrag = false, noDragEventsBubbling = false, noKeyboard = false, openRef, preventDropOnDocument = true, readOnly, useFsAccessApi = false, validator, onDragEnter, onDragLeave, onDragOver, onDrop, onDropAccepted, onDropRejected, onError, onFileDialogCancel, onFileDialogOpen,...rest }, ariaProps, dataProps, eventProps } = require_use_field_props.useFieldProps(props); const labelledbyId = (0, react.useId)(); const interactive = !(loading || readOnly || disabled); const { acceptedFiles, fileRejections, isDragAccept: dragAccept, isDragActive: dragActive, isDragReject: dragReject, isFocused: focused, open, getInputProps: getOriginalInputProps, getRootProps: getOriginalRootProps } = (0, react_dropzone.useDropzone)({ accept: (0, require_utils_index.utils_exports.isArray)(accept) ? accept.reduce((prev, current) => ({ ...prev, [current]: [] }), {}) : accept, autoFocus, disabled: !interactive, getFilesFromEvent, maxFiles, maxSize, minSize, multiple, noClick, noDrag, noDragEventsBubbling, noKeyboard, preventDropOnDocument, useFsAccessApi, validator, onDragEnter, onDragLeave, onDragOver, onDrop, onDropAccepted, onDropRejected, onError, onFileDialogCancel, onFileDialogOpen }); const dragIdle = !dragAccept && !dragReject; require_ref.assignRef(openRef, open); const getRootProps = (0, react.useCallback)(({ ref,...props$1 } = {}) => getOriginalRootProps({ id: labelledbyId, ...dataProps, ...eventProps, "aria-disabled": (0, require_utils_index.utils_exports.ariaAttr)(!interactive), "data-accept": (0, require_utils_index.utils_exports.dataAttr)(dragAccept), "data-idle": (0, require_utils_index.utils_exports.dataAttr)(dragIdle), "data-loading": (0, require_utils_index.utils_exports.dataAttr)(loading), "data-reject": (0, require_utils_index.utils_exports.dataAttr)(dragReject), ...rest, ...props$1, ref: require_ref.mergeRefs(ref, rest.ref) }), [ getOriginalRootProps, labelledbyId, dataProps, eventProps, interactive, dragAccept, dragIdle, loading, dragReject, rest ]); return { acceptedFiles, dragAccept, dragActive, dragIdle, dragReject, fileRejections, focused, loading, open, getInputProps: (0, react.useCallback)(({ "aria-labelledby": ariaLabelledby,...props$1 } = {}) => getOriginalInputProps({ id, name, disabled, readOnly, ...ariaProps, ...dataProps, ...props$1, "aria-labelledby": (0, require_utils_index.utils_exports.cx)(ariaLabelledby, labelledbyId) }), [ getOriginalInputProps, id, name, disabled, readOnly, ariaProps, dataProps, labelledbyId ]), getRootProps }; }; //#endregion exports.useDropzone = useDropzone; //# sourceMappingURL=use-dropzone.cjs.map