@redocly/theme
Version:
Shared UI components lib
26 lines • 1.87 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.CodeBlockDropdown = CodeBlockDropdown;
const react_1 = __importDefault(require("react"));
const Dropdown_1 = require("../../components/Dropdown/Dropdown");
const DropdownMenu_1 = require("../../components/Dropdown/DropdownMenu");
const DropdownMenuItem_1 = require("../../components/Dropdown/DropdownMenuItem");
const Button_1 = require("../../components/Button/Button");
const NoneIcon_1 = require("../../icons/NoneIcon/NoneIcon");
const utils_1 = require("../../core/utils");
function CodeBlockDropdown({ items, onChange, value }) {
const activeItem = items.find((item) => item.id === value) || items[0];
const icon = (activeItem === null || activeItem === void 0 ? void 0 : activeItem.lang) ? (0, utils_1.getFileIconByLanguage)(activeItem === null || activeItem === void 0 ? void 0 : activeItem.lang) : null;
return (react_1.default.createElement(Dropdown_1.Dropdown, { withArrow: true, alignment: "end", trigger: react_1.default.createElement(Button_1.Button, { iconPosition: "right", variant: "ghost", size: "small" },
icon,
activeItem.name) },
react_1.default.createElement(DropdownMenu_1.DropdownMenu, null, items.map((item) => {
const icon = (0, utils_1.getFileIconByLanguage)(item.lang || '');
const isActive = item.id === value;
return (react_1.default.createElement(DropdownMenuItem_1.DropdownMenuItem, { key: item.id, onAction: () => onChange(item.id), active: isActive, prefix: item.lang ? icon : react_1.default.createElement(NoneIcon_1.NoneIcon, { size: "var(--icon-size)" }) }, item.name));
}))));
}
//# sourceMappingURL=CodeBlockDropdown.js.map