@ozen-ui/kit
Version:
React component library
37 lines (36 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileUploaderList = exports.cnFileUploaderList = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var icons_1 = require("@ozen-ui/icons");
var useThemeProps_1 = require("../../../../hooks/useThemeProps");
var classname_1 = require("../../../../utils/classname");
var polymorphicComponentWithRef_1 = require("../../../../utils/polymorphicComponentWithRef");
var FileNext_1 = require("../../../FileNext");
var Stack_1 = require("../../../Stack");
var context_1 = require("../../context");
var FileUploaderListItem_1 = require("../FileUploaderListItem");
var constants_1 = require("./constants");
exports.cnFileUploaderList = (0, classname_1.cn)('FileUploaderList');
exports.FileUploaderList = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'FileUploaderList',
});
var _a = props.as, as = _a === void 0 ? constants_1.FILE_UPLOADER_LIST_DEFAULT_TAG : _a, className = props.className, renderItem = props.renderItem, other = tslib_1.__rest(props, ["as", "className", "renderItem"]);
var _b = (0, context_1.useFileUploaderContext)(), filesInfos = _b.filesInfos, deleteFile = _b.deleteFile;
if (filesInfos.length === 0) {
return null;
}
var renderItemDefault = function (info) {
var _a, _b;
return (react_1.default.createElement(FileUploaderListItem_1.FileUploaderListItem, { key: info.id, file: (_a = info.format) !== null && _a !== void 0 ? _a : react_1.default.createElement(icons_1.DownloadFileIcon, null), status: constants_1.FILE_UPLOADER_FILE_STATUS_TO_LIST_FILE_STATUS[info.status], hint: info.status === 'error'
? (_b = info.errorMessage) !== null && _b !== void 0 ? _b : info.description
: info.description, trailing: react_1.default.createElement(FileNext_1.FileIconButton, { icon: icons_1.DeleteIcon, onClick: function () { return deleteFile(info); }, disabled: info.status === 'loading' }) }, info.name));
};
return (react_1.default.createElement(Stack_1.Stack, tslib_1.__assign({}, other, { as: as, className: (0, exports.cnFileUploaderList)('', [className]), gap: "xs", direction: "column", ref: ref }), filesInfos.map(function (info) {
return renderItem ? renderItem(info) : renderItemDefault(info);
})));
});
exports.FileUploaderList.displayName = 'FileUploaderList';