// @flow import * as ICONS from 'constants/icons'; import React from 'react'; import TextField from '@mui/material/TextField'; import Button from 'component/button'; import Zoom from '@mui/material/Zoom'; type Props = { params: any, messageValue: string, inputDefaultProps: any, inputRef: any, submitButtonRef?: any, claimIsMine?: boolean, slimInput?: boolean, toggleSelectors: () => any, handleTip: (isLBC: boolean) => void, handleSubmit: () => any, handlePreventClick?: () => void, }; const TextareaSuggestionsInput = (props: Props) => { const { params, messageValue, inputRef, inputDefaultProps, submitButtonRef, claimIsMine, slimInput, toggleSelectors, handleTip, handleSubmit, handlePreventClick, } = props; const { InputProps, disabled, fullWidth, id, inputProps: autocompleteInputProps } = params; const inputProps = { ...autocompleteInputProps, ...inputDefaultProps }; const autocompleteProps = { InputProps, disabled, fullWidth, id, inputProps }; if (slimInput) { InputProps.startAdornment = ( <Button icon={ICONS.STICKER} onClick={() => { if (handlePreventClick) handlePreventClick(); toggleSelectors(); }} /> ); InputProps.endAdornment = ( <> {!claimIsMine && ( <Button disabled={!messageValue || messageValue.length === 0} icon={ICONS.LBC} onClick={() => handleTip(true)} /> )} {!claimIsMine && ( <Button disabled={!messageValue || messageValue.length === 0} icon={ICONS.FINANCE} onClick={() => handleTip(false)} /> )} <Zoom in={messageValue ? messageValue.length > 0 : undefined} mountOnEnter unmountOnExit> <div> <Button ref={submitButtonRef} button="primary" icon={ICONS.SUBMIT} iconColor="red" onClick={() => handleSubmit()} /> </div> </Zoom> </> ); return ( <TextField inputRef={inputRef} variant="outlined" multiline minRows={1} select={false} {...autocompleteProps} /> ); } return <TextField inputRef={inputRef} multiline select={false} {...autocompleteProps} />; }; export default TextareaSuggestionsInput;