@lobehub/editor
Version:
A powerful and extensible rich text editor built on Meta's Lexical framework, providing a modern editing experience with React integration.
56 lines (55 loc) • 1.88 kB
JavaScript
'use client';
import { ActionIcon, Flexbox } from '@lobehub/ui';
import { ChevronDown, ChevronRight } from 'lucide-react';
import CopyButton from "./CopyButton";
import { LanguageSelect } from "./LanguageSelect";
import { MoreOptions } from "./MoreOptions";
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
export var Toolbar = function Toolbar(_ref) {
var selectedLang = _ref.selectedLang,
onLanguageChange = _ref.onLanguageChange,
onCopy = _ref.onCopy,
tabSize = _ref.tabSize,
onTabSizeChange = _ref.onTabSizeChange,
useTabs = _ref.useTabs,
onUseTabsChange = _ref.onUseTabsChange,
showLineNumbers = _ref.showLineNumbers,
onShowLineNumbersChange = _ref.onShowLineNumbersChange,
onClick = _ref.onClick,
expand = _ref.expand,
toggleExpand = _ref.toggleExpand;
return /*#__PURE__*/_jsxs(Flexbox, {
align: 'center',
className: 'cm-header-toolbar',
horizontal: true,
justify: 'space-between',
onClick: onClick,
padding: 4,
children: [/*#__PURE__*/_jsx(LanguageSelect, {
onLanguageChange: onLanguageChange,
selectedLang: selectedLang
}), /*#__PURE__*/_jsxs(Flexbox, {
gap: 4,
horizontal: true,
onClick: function onClick(e) {
return e.stopPropagation();
},
children: [/*#__PURE__*/_jsx(MoreOptions, {
onShowLineNumbersChange: onShowLineNumbersChange,
onTabSizeChange: onTabSizeChange,
onUseTabsChange: onUseTabsChange,
showLineNumbers: showLineNumbers,
tabSize: tabSize,
useTabs: useTabs
}), /*#__PURE__*/_jsx(CopyButton, {
onCopy: onCopy
}), /*#__PURE__*/_jsx(ActionIcon, {
icon: expand ? ChevronDown : ChevronRight,
onClick: toggleExpand,
size: "small"
})]
})]
});
};
Toolbar.displayName = 'Toolbar';