UNPKG

2.06 kBJavaScriptView Raw
1import { __rest } from "tslib";
2import * as React from 'react';
3import Dropzone from 'react-dropzone';
4import styles from '@patternfly/react-styles/css/components/MultipleFileUpload/multiple-file-upload';
5import { css } from '@patternfly/react-styles';
6export const MultipleFileUploadContext = React.createContext({
7 open: () => { }
8});
9export const MultipleFileUpload = (_a) => {
10 var { className, children, dropzoneProps = {}, isHorizontal, onFileDrop = () => { } } = _a, props = __rest(_a, ["className", "children", "dropzoneProps", "isHorizontal", "onFileDrop"]);
11 const onDropAccepted = (acceptedFiles, event) => {
12 onFileDrop(acceptedFiles);
13 // allow users to set a custom drop accepted handler rather than using on data change
14 dropzoneProps.onDropAccepted && dropzoneProps.onDropAccepted(acceptedFiles, event);
15 };
16 const onDropRejected = (rejectedFiles, event) => {
17 dropzoneProps.onDropRejected && (dropzoneProps === null || dropzoneProps === void 0 ? void 0 : dropzoneProps.onDropRejected(rejectedFiles, event));
18 };
19 return (React.createElement(Dropzone, Object.assign({ multiple: true }, dropzoneProps, { onDropAccepted: onDropAccepted, onDropRejected: onDropRejected }), ({ getRootProps, getInputProps, isDragActive, open }) => {
20 const rootProps = getRootProps(Object.assign(Object.assign({}, props), { onClick: event => event.preventDefault() // Prevents clicking TextArea from opening file dialog
21 }));
22 const inputProps = getInputProps();
23 return (React.createElement(MultipleFileUploadContext.Provider, { value: { open } },
24 React.createElement("div", Object.assign({ className: css(styles.multipleFileUpload, isDragActive && styles.modifiers.dragOver, isHorizontal && styles.modifiers.horizontal, className) }, rootProps, props),
25 React.createElement("input", Object.assign({}, inputProps)),
26 children)));
27 }));
28};
29MultipleFileUpload.displayName = 'MultipleFileUpload';
30//# sourceMappingURL=MultipleFileUpload.js.map
\No newline at end of file