Loading...
Files
components/demo.tsx
'use client';
import * as React from 'react';
import { Plate, usePlateEditor } from 'platejs/react';
import { EditorKit } from '@/components/editor/editor-kit';
import { Editor, EditorContainer } from '@/components/ui/editor';
import { DEMO_VALUES } from './values/demo-values';
export default function Demo({ id }: { id: string }) {
const editor = usePlateEditor({
plugins: EditorKit,
value: DEMO_VALUES[id],
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Kit Usage
Installation
The fastest way to add mentions is with the MentionKit
, which includes pre-configured MentionPlugin
and MentionInputPlugin
along with their Plate UI components.
'use client';
import { MentionInputPlugin, MentionPlugin } from '@platejs/mention/react';
import {
MentionElement,
MentionInputElement,
} from '@/components/ui/mention-node';
export const MentionKit = [
MentionPlugin.configure({
options: { triggerPreviousCharPattern: /^$|^[\s"']$/ },
}).withComponent(MentionElement),
MentionInputPlugin.withComponent(MentionInputElement),
];
MentionElement
: Renders mention elementsMentionInputElement
: Renders the mention input combobox
Add Kit
import { createPlateEditor } from 'platejs/react';
import { MentionKit } from '@/components/editor/plugins/mention-kit';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
...MentionKit,
],
});
Manual Usage
Installation
pnpm add @platejs/mention
Add Plugins
import { MentionPlugin, MentionInputPlugin } from '@platejs/mention/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
MentionPlugin,
MentionInputPlugin,
],
});
Configure Plugins
import { MentionPlugin, MentionInputPlugin } from '@platejs/mention/react';
import { createPlateEditor } from 'platejs/react';
import { MentionElement, MentionInputElement } from '@/components/ui/mention-node';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
MentionPlugin.configure({
options: {
trigger: '@',
triggerPreviousCharPattern: /^$|^[\s"']$/,
insertSpaceAfterMention: false,
},
}).withComponent(MentionElement),
MentionInputPlugin.withComponent(MentionInputElement),
],
});
options.trigger
: Character that triggers the mention comboboxoptions.triggerPreviousCharPattern
: RegExp pattern for the character before trigger. The kit uses/^$|^[\s"']$/
to allow mentions at start of line, after whitespace, or after quotesoptions.insertSpaceAfterMention
: Whether to automatically insert a space after inserting a mentionwithComponent
: Assigns the UI components for rendering mentions and mention input
Plate Plus
Plugins
MentionPlugin
Plugin for mention functionality. Extends TriggerComboboxPluginOptions.
MentionInputPlugin
Plugin for mention input functionality.
API
api.insert.mention
Inserts a mention element at the current selection.
getMentionOnSelectItem
Gets handler for selecting mention combobox item.