UNPKG

@bothub-chat/ui

Version:

Bothub UI Components

53 lines (52 loc) 2.29 kB
import React from 'react'; import { EditingProps, IConfigureOption, IInputMessageFile, IInputMessageVoiceFile, InputMessageErrorEvent } from './types'; import { type MessageSubmitKey } from './use-input'; export type InputMessageChangeEventHandler = (message: string) => unknown; export type InputMessageFilesChangeEventHandler = (files: IInputMessageFile[]) => unknown; export type InputMessageVoiceFilesChangeEventHandler = (files: IInputMessageVoiceFile[]) => unknown; export type InputMessageSendEventHandler = (message: string, files: IInputMessageFile[]) => unknown; export type InputMessageVoiceEventHandler = (blob: Blob) => unknown; export type { MessageSubmitKey }; export interface InputMessageProps extends Omit<React.ComponentProps<'textarea'>, 'value' | 'onChange'> { className?: string; placeholder?: string; editingProps?: EditingProps; message?: string; hiddenSend?: boolean; files?: IInputMessageFile[]; hideUploadFile?: boolean; uploadFileLimit?: number; uploadFileDisabled?: boolean; uploadFileAccept?: string; uploadFileText?: string; imageRequiredText?: string; sendDisabled?: boolean; textAreaDisabled?: boolean; messageSubmitKey?: MessageSubmitKey; concatenateText?: React.ReactNode; concatenateVideo?: React.ReactNode; autoFocus?: boolean; voice?: boolean; onChange?: InputMessageChangeEventHandler; onFilesChange?: InputMessageFilesChangeEventHandler; onVoiceFilesChange?: InputMessageVoiceFilesChangeEventHandler; onTextAreaChange?: React.ChangeEventHandler<HTMLTextAreaElement>; onSend?: InputMessageSendEventHandler; handleImageClick?: (payload: IInputMessageFile) => IInputMessageFile; emitError?(event: InputMessageErrorEvent): void; configureOptions?: IConfigureOption[]; actions?: React.ReactNode; attachAriaLabel?: string; sendAriaLabel?: string; saveAriaLabel?: string; voiceAriaLabel?: string; stopVoiceAriaLabel?: string; pauseVoiceAriaLabel?: string; resumeVoiceAriaLabel?: string; cancelEditAriaLabel?: string; deleteVoiceAriaLabel?: string; deleteFileAriaLabel?: string; } export declare const InputMessage: React.FC<InputMessageProps>; export * from './types'; export * from './input-files';