@ozen-ui/kit
Version:
React component library
30 lines (29 loc) • 3.52 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileUploader = exports.cnFileUploader = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var useThemeProps_1 = require("../../hooks/useThemeProps");
var classname_1 = require("../../utils/classname");
var polymorphicComponentWithRef_1 = require("../../utils/polymorphicComponentWithRef");
var Stack_1 = require("../Stack");
var components_1 = require("./components");
var constants_1 = require("./constants");
var context_1 = require("./context");
var modules_1 = require("./modules");
exports.cnFileUploader = (0, classname_1.cn)('FileUploader');
exports.FileUploader = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'FileUploader',
});
var _a = props.as, Tag = _a === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_TAG : _a, prepareFiles = props.prepareFiles, children = props.children, _b = props.size, size = _b === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_SIZE : _b, files = props.files, defaultFiles = props.defaultFiles, _c = props.multiple, multiple = _c === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_MULTIPLE : _c, onChange = props.onChange, className = props.className, onDelete = props.onDelete, onDraggingStart = props.onDraggingStart, onDraggingEnd = props.onDraggingEnd, status = props.status, drop = props.drop, _d = props.variant, variant = _d === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_VARIANT : _d, inputProp = props.input, accept = props.accept, hint = props.hint, _e = props.validate, validate = _e === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_VALIDATE : _e, _f = props.allow, allow = _f === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_ALLOW_DROP : _f, onAllowDropChange = props.onAllowDropChange, onAllowUploadChange = props.onAllowUploadChange, _g = props.onDrop, onDrop = _g === void 0 ? constants_1.FILE_UPLOADER_DEFAULT_ON_DROP : _g, other = tslib_1.__rest(props, ["as", "prepareFiles", "children", "size", "files", "defaultFiles", "multiple", "onChange", "className", "onDelete", "onDraggingStart", "onDraggingEnd", "status", "drop", "variant", "input", "accept", "hint", "validate", "allow", "onAllowDropChange", "onAllowUploadChange", "onDrop"]);
var input = inputProp !== null && inputProp !== void 0 ? inputProp : react_1.default.createElement(modules_1.FileUploaderInput, null);
return (react_1.default.createElement(context_1.FileUploaderProvider, { prepareFiles: prepareFiles, size: size, files: files, defaultFiles: defaultFiles, multiple: multiple, onChange: onChange, onDelete: onDelete, onDraggingStart: onDraggingStart, onDraggingEnd: onDraggingEnd, status: status, variant: variant, accept: accept, validate: validate, allow: allow, onAllowDropChange: onAllowDropChange, onAllowUploadChange: onAllowUploadChange, onDrop: onDrop },
react_1.default.createElement(Tag, tslib_1.__assign({}, other, { ref: ref, className: (0, exports.cnFileUploader)({ status: status }, [className]) }),
input,
drop,
children && (react_1.default.createElement(Stack_1.Stack, { gap: "s", className: (0, exports.cnFileUploader)('Content'), direction: "column" }, children)),
hint && (react_1.default.createElement(components_1.FileUploaderHint, { className: (0, exports.cnFileUploader)('Hint') }, hint)))));
});
exports.FileUploader.displayName = 'FileUploader';