@lobehub/editor
Version:
A powerful and extensible rich text editor built on Meta's Lexical framework, providing a modern editing experience with React integration.
52 lines (49 loc) • 1.45 kB
JavaScript
'use client';
import { useCallback } from 'react';
import DefaultSlashMenu from "./DefaultSlashMenu";
/**
* SlashMenu component - Only responsible for rendering the menu UI
* All state management and plugin registration is handled by ReactSlashPlugin
*/
import { jsx as _jsx } from "react/jsx-runtime";
var SlashMenu = function SlashMenu(_ref) {
var activeKey = _ref.activeKey,
anchorClassName = _ref.anchorClassName,
CustomRender = _ref.customRender,
loading = _ref.loading,
onActiveKeyChange = _ref.onActiveKeyChange,
onSelect = _ref.onSelect,
open = _ref.open,
options = _ref.options,
position = _ref.position,
onClose = _ref.onClose;
// Adapter for custom render component onSelect
var customRenderOnSelect = useCallback(function (option) {
onSelect(option);
}, [onSelect]);
/**
* Render the custom component if it exists
*/
if (CustomRender) {
return /*#__PURE__*/_jsx(CustomRender, {
activeKey: activeKey,
loading: loading,
onSelect: customRenderOnSelect,
open: open,
options: options,
setActiveKey: onActiveKeyChange
});
}
return /*#__PURE__*/_jsx(DefaultSlashMenu, {
activeKey: activeKey,
anchorClassName: anchorClassName,
loading: loading,
onClose: onClose,
onSelect: onSelect,
open: open,
options: options,
position: position
});
};
SlashMenu.displayName = 'SlashMenu';
export default SlashMenu;