import React, { ReactElement, ChangeEvent, MouseEvent } from 'react'; import Button from '../Button'; import Icon from '../Icon'; import Input from '../Input'; import { Avatar, EditorContainer, EditorWrapper, EditorActionsWrapper, } from './StyledComment'; export interface EditorProps { /** * Custom actions section, can be used for attaching file and more. */ actions?: ReactElement; /** * Author avatar. */ avatar?: string | ReactElement; /** * onChange event for Editor textarea. */ onChange: (e: ChangeEvent) => void; /** * submit event. */ onSubmit?: (e: MouseEvent) => void; /** * loading state for button. */ submitting?: boolean; /** * content for text area. */ value: string; } const Editor = ({ avatar, onChange, onSubmit, submitting = false, value, actions, }: EditorProps): ReactElement => { const avatarElement = avatar !== undefined && ( {typeof avatar === 'string' ? ( comment-avatar ) : ( avatar )} ); const actionsElement = ( {submitting === true ? ( ) : ( )} {actions !== undefined && actions} ); return ( {avatarElement} {actionsElement} ); }; export default Editor;