UNPKG

@redocly/theme

Version:

Shared UI components lib

26 lines 1.87 kB
"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