UNPKG

@ozen-ui/kit

Version:

React component library

37 lines (36 loc) 2.54 kB
"use strict"; 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';