import React, { CSSProperties, ReactElement, useRef, useState } from 'react'; import { ContentState, EditorState } from 'draft-js'; import Editor from '@draft-js-plugins/editor'; import createMentionPlugin, { defaultSuggestionsFilter, } from '@draft-js-plugins/mention'; import editorStyles from './editorStyles.css'; import mentionsStyles from './mentionsStyles.css'; import mentions from './mentions'; const positionSuggestions = ({ props }): CSSProperties => { let transform; let transition; if (props.open) { if (props.suggestions.length > 0) { transform = 'scaleY(1)'; transition = 'all 0.25s cubic-bezier(.3,1.2,.2,1)'; } else { transform = 'scaleY(0)'; transition = 'all 0.25s cubic-bezier(.3,1,.2,1)'; } } return { transform, transition, }; }; const mentionPlugin = createMentionPlugin({ mentions, entityMutability: 'IMMUTABLE', theme: mentionsStyles, positionSuggestions, mentionPrefix: '@', supportWhitespace: true, }); const { MentionSuggestions } = mentionPlugin; const plugins = [mentionPlugin]; const Entry = (props): ReactElement => { const { mention, theme, isFocused, // eslint-disable-line @typescript-eslint/no-unused-vars searchValue, // eslint-disable-line @typescript-eslint/no-unused-vars ...parentProps } = props; return (