@bothub-chat/ui
Version:
Bothub UI Components
53 lines (52 loc) • 2.29 kB
TypeScript
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';