@redocly/theme
Version:
Shared UI components lib
47 lines (45 loc) • 2.68 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CatalogClassicInfoBlock = CatalogClassicInfoBlock;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importDefault(require("styled-components"));
const hooks_1 = require("../../core/hooks");
const utils_1 = require("../../core/utils");
const Tag_1 = require("../../components/Tag/Tag");
const Link_1 = require("../../components/Link/Link");
function CatalogClassicInfoBlock(props) {
var _a, _b, _c, _d;
const scorecardBadge = ((_a = props.metadata) === null || _a === void 0 ? void 0 : _a.scorecardLevel) ? (react_1.default.createElement(ScorecardBadge, { level: props.metadata.scorecardLevel, slug: (_b = props.metadata) === null || _b === void 0 ? void 0 : _b.scoreCardSlug, colorVariable: (0, utils_1.getScorecardColorVariable)(((_c = props.metadata) === null || _c === void 0 ? void 0 : _c.scorecardLevelIdx) || 0, Object.keys(((_d = props.metadata) === null || _d === void 0 ? void 0 : _d.scorecardLevels) || {}).length) })) : null;
return (react_1.default.createElement(CatalogInfoBlockWrapper, null,
react_1.default.createElement(CatalogBadgesWrapper, { "data-component-name": "CatalogClassic/CatalogClassicInfoBlock" }, scorecardBadge)));
}
function ScorecardBadge(props) {
const { level, slug, colorVariable } = props;
const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
const otelTelemetry = useOtelTelemetry();
return (react_1.default.createElement(Link_1.Link, { to: slug },
react_1.default.createElement(Tag_1.Tag, { onClick: () => otelTelemetry.send({ type: 'scorecard_link.clicked', payload: { action: 'click' } }), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level)));
}
const CatalogInfoBlockWrapper = styled_components_1.default.div `
position: relative;
width: 100%;
`;
const CatalogBadgesWrapper = styled_components_1.default.div `
&:empty {
display: none;
}
position: absolute;
z-index: 10;
right: 0;
margin-top: var(--panel-gap-vertical);
--badge-border-radius: var(--catalog-classic-page-badge-border-radius);
--badge-padding: var(--catalog-classic-page-badge-padding);
--badge-font-size: var(--catalog-classic-page-badge-font-size);
--badge-line-height: var(--catalog-classic-page-badge-line-height);
--badge-dot-size: var(--catalog-classic-page-badge-dot-size);
--badge-dot-border-color: var(--catalog-classic-page-badge-dot-border-color);
`;
//# sourceMappingURL=CatalogClassicInfoBlock.js.map