Excalidraw
components/excalidraw-demo.tsx
'use client';
import React from 'react';
import { Plate } from '@udecode/plate/react';
import { ExcalidrawPlugin } from '@udecode/plate-excalidraw/react';
import { editorPlugins } from '@/components/editor/plugins/editor-plugins';
import { useCreateEditor } from '@/components/editor/use-create-editor';
import { excalidrawValue } from '@/components/values/excalidraw-value';
import { Editor, EditorContainer } from '@/components/plate-ui/editor';
import { ExcalidrawElement } from '@/components/plate-ui/excalidraw-element';
export default function ExcalidrawDemo() {
const editor = useCreateEditor({
components: {
[ExcalidrawPlugin.key]: ExcalidrawElement,
},
plugins: [...editorPlugins, ExcalidrawPlugin],
value: excalidrawValue,
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Installation
npm install @udecode/plate-excalidraw
Usage
import { ExcalidrawPlugin } from '@udecode/plate-excalidraw/react';
import { SelectOnBackspace } from '@udecode/plate-select';
const plugins = [
// ...otherPlugins
ExcalidrawPlugin,
SelectOnBackspace.configure({
options: { query: { allow: [ExcalidrawPlugin.key] } },
}),
];
Plugins
ExcalidrawPlugin
Adds Excalidraw functionality to the editor.