@ozen-ui/kit
Version:
React component library
41 lines (40 loc) • 2.29 kB
JavaScript
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';
;