UNPKG

@ozen-ui/kit

Version:

React component library

41 lines (40 loc) 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileIcon = exports.cnFileIcon = void 0; var tslib_1 = require("tslib"); require("./FileIcon.css"); 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 renderContent_1 = require("../../utils/renderContent"); var Loader_1 = require("../Loader"); var constants_1 = require("./constants"); exports.cnFileIcon = (0, classname_1.cn)('FileIcon'); exports.FileIcon = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (inProps, ref) { var props = (0, useThemeProps_1.useThemeProps)({ props: inProps, name: 'FileIcon', }); var _a = props.as, Tag = _a === void 0 ? constants_1.FILE_ICON_DEFAULT_TAG : _a, className = props.className, _b = props.status, status = _b === void 0 ? constants_1.FILE_ICON_DEFAULT_STATUS : _b, children = props.children, _c = props.color, color = _c === void 0 ? constants_1.FILE_ICON_DEFAULT_COLOR : _c, _d = props.size, size = _d === void 0 ? constants_1.FILE_ICON_DEFAULT_SIZE : _d, other = tslib_1.__rest(props, ["as", "className", "status", "children", "color", "size"]); var iconSize = 's'; var content = (function () { if (status === 'loading') { return react_1.default.createElement(Loader_1.Loader, { color: "currentcolor", size: iconSize }); } if (status === 'error') { return react_1.default.createElement(icons_1.WarningTriangleOutlineIcon, { size: iconSize }); } if (status === 'unknown') { return react_1.default.createElement(icons_1.QuestionCircleOutlineIcon, { size: iconSize }); } return (0, renderContent_1.renderContent)({ content: children, props: { size: iconSize } }); })(); return (react_1.default.createElement(Tag, tslib_1.__assign({}, other, { ref: ref, className: (0, exports.cnFileIcon)({ status: status, color: color, size: size, }, [className]) }), content)); }); exports.FileIcon.displayName = 'FileIcon';