docs/(plugins)/(elements)/callout.cn.mdx
最快添加提示框插件的方式是使用 CalloutKit,它包含预配置的 CalloutPlugin 和 Plate UI 组件。
CalloutElement: 渲染提示框元素将套件添加到你的插件中:
import { createPlateEditor } from 'platejs/react';
import { CalloutKit } from '@/components/editor/plugins/callout-kit';
const editor = createPlateEditor({
plugins: [
// ...其他插件
...CalloutKit,
],
});
npm install @platejs/callout
在创建编辑器时,将 CalloutPlugin 包含到 Plate 插件数组中。
import { CalloutPlugin } from '@platejs/callout/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...其他插件
CalloutPlugin,
],
});
你可以通过自定义组件来配置 CalloutPlugin 以渲染提示框元素。
import { CalloutPlugin } from '@platejs/callout/react';
import { createPlateEditor } from 'platejs/react';
import { CalloutElement } from '@/components/ui/callout-node';
const editor = createPlateEditor({
plugins: [
// ...其他插件
CalloutPlugin.withComponent(CalloutElement),
],
});
withComponent: 指定 CalloutElement 来渲染提示框元素CalloutPlugin提示框元素插件。
tf.insert.callout向编辑器中插入提示框元素。
<API name="callout"> <APIOptions type="object"> <APIItem name="variant" type="string" optional> 要插入的提示框变体类型 </APIItem> <APIItem name="...InsertNodesOptions" type="InsertNodesOptions<V>"> 来自 `InsertNodesOptions` 的其他选项 </APIItem> </APIOptions> </API>useCalloutEmojiPicker管理提示框的表情符号选择器功能。
<API name="useCalloutEmojiPicker"> <APIOptions type="UseCalloutEmojiPickerOptions"> <APIItem name="isOpen" type="boolean"> 表情符号选择器是否打开 </APIItem> <APIItem name="setIsOpen" type="(isOpen: boolean) => void"> 设置表情符号选择器打开状态的函数 </APIItem> </APIOptions> <APIReturns type="object"> <APIItem name="emojiToolbarDropdownProps" type="object"> 表情符号工具栏下拉框的属性 <APISubList> <APISubListItem parent="emojiToolbarDropdownProps" name="isOpen" type="boolean"> 表情符号选择器是否打开 </APISubListItem> <APISubListItem parent="emojiToolbarDropdownProps" name="setIsOpen" type="(v: boolean) => void"> 设置表情符号选择器打开状态的函数,会考虑只读模式 </APISubListItem> </APISubList> </APIItem> <APIItem name="props" type="object"> 表情符号选择器组件的属性 <APISubList> <APISubListItem parent="props" name="isOpen" type="boolean"> 表情符号选择器是否打开 </APISubListItem> <APISubListItem parent="props" name="setIsOpen" type="(isOpen: boolean) => void"> 设置表情符号选择器打开状态的函数 </APISubListItem> <APISubListItem parent="props" name="onSelectEmoji" type="(options: { emojiValue?: any; icon?: any }) => void"> 当选择表情符号时调用的函数。它会更新提示框的图标并关闭选择器 </APISubListItem> </APISubList> </APIItem> </APIReturns> </API>TCalloutElementinterface TCalloutElement extends TElement {
variant?: string;
icon?: string;
}