@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
63 lines (62 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const useLabels = require("../hooks/useLabels.cjs");
const setId = require("../utils/setId.cjs");
const FileUploader_styles = require("./FileUploader.styles.cjs");
const DropZone = require("./DropZone/DropZone.cjs");
const FileList = require("./FileList/FileList.cjs");
const FormElement = require("../FormElement/FormElement.cjs");
const DEFAULT_LABELS = {
removeFileButtonLabel: "Remove File"
};
const HvFileUploader = (props) => {
const {
id,
className,
classes: classesProp,
labels: labelsProp,
fileList,
multiple = true,
label,
hideLabels,
maxFileSize = Infinity,
inputProps = {},
accept,
acceptedFiles = [],
// TODO: consider adding/replacing with onFilesChange
onFilesAdded,
onFileRemoved,
...others
} = uikitReactUtils.useDefaultProps("HvFileUploader", props);
const { classes, cx } = FileUploader_styles.useClasses(classesProp);
const labels = useLabels.useLabels(DEFAULT_LABELS, labelsProp);
return /* @__PURE__ */ jsxRuntime.jsxs(FormElement.HvFormElement, { id, className: cx(classes.root, className), ...others, children: [
/* @__PURE__ */ jsxRuntime.jsx(
DropZone.HvDropZone,
{
id: setId.setId(id, "dropzone"),
label,
labels,
multiple,
accept: accept ?? acceptedFiles.join(","),
maxFileSize,
onFilesAdded,
inputProps,
hideLabels
}
),
/* @__PURE__ */ jsxRuntime.jsx(
FileList.HvFileList,
{
id: setId.setId(id, "filelist"),
list: fileList,
onFileRemoved,
removeFileButtonLabel: labels?.removeFileButtonLabel
}
)
] });
};
exports.fileUploaderClasses = FileUploader_styles.staticClasses;
exports.HvFileUploader = HvFileUploader;