import React, { ReactElement, useRef, useState } from 'react'; import { EditorState } from 'draft-js'; import Editor from '@draft-js-plugins/editor'; import createMentionPlugin, { Popover, defaultSuggestionsFilter, } from '@draft-js-plugins/mention'; import editorStyles from './editorStyles.css'; import mentions from './mentions'; const mentionPlugin = createMentionPlugin({ mentions, }); const { MentionSuggestions } = mentionPlugin; const plugins = [mentionPlugin]; const CustomMentionEditor = (): ReactElement => { const [editorState, setEditorState] = useState(EditorState.createEmpty()); const editor = useRef(); const [open, setOpen] = useState(false); const [suggestions, setSuggestions] = useState(mentions); const onChange = (value): void => { setEditorState(value); }; const focus = (): void => { editor.current.focus(); }; const onOpenChange = (newOpen): void => { setOpen(newOpen); }; const onSearchChange = ({ value }): void => { setSuggestions(defaultSuggestionsFilter(value, mentions)); }; return (
{ editor.current = element; }} /> (
{children}
)} />
); }; export default CustomMentionEditor;