import * as React from 'react'; import classNames from 'classnames'; // Types import type { FC, RefObject } from 'react'; import type { EditorProps as DraftEditorProps, Editor as DraftEditorType, } from 'draft-js'; // Core import { Editor as DraftEditor } from './core'; // Custom Utilities import isBlockquote from './utilities/block/isBlockquote'; import isOL from './utilities/block/isOL'; import isUL from './utilities/block/isUL'; // Custom Styles import './styles/main.css'; // Custom Types export interface EditorProps extends DraftEditorProps { rtlPlaceholder?: boolean; editorRef?: RefObject | undefined; } const Editor: FC = (props) => { // Props const { editorRef, placeholder, rtlPlaceholder, textDirectionality, ...otherProps } = props; // States const [showPlaceholder, setShowPlaceholder] = React.useState(false); // Hooks const setShowPlaceholderValue = React.useCallback(() => { if ( isBlockquote(props.editorState) || isOL(props.editorState) || isUL(props.editorState) ) return false; return true; }, [props.editorState]); React.useEffect(() => { setShowPlaceholder(setShowPlaceholderValue()); }, [setShowPlaceholderValue]); // Utilities const hasText = () => props.editorState.getCurrentContent().hasText(); return (
); }; export default Editor;