stream-chat-react
Version:
React components to create chat conversations or livestream style chat
29 lines (28 loc) • 2.94 kB
TypeScript
import React, { PropsWithChildren } from 'react';
import type { TriggerSettings } from '../components/MessageInput/DefaultTriggerProvider';
import type { CooldownTimerState, MessageInputProps } from '../components/MessageInput';
import type { CommandsListState, MentionsListState, MessageInputHookProps, MessageInputState } from '../components/MessageInput/hooks/useMessageInputState';
import type { CustomTrigger, DefaultStreamChatGenerics } from '../types/types';
export type MessageInputContextValue<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = MessageInputState<StreamChatGenerics> & MessageInputHookProps<StreamChatGenerics> & Omit<MessageInputProps<StreamChatGenerics, V>, 'Input'> & CooldownTimerState & {
autocompleteTriggers?: TriggerSettings<StreamChatGenerics, V>;
} & CommandsListState & MentionsListState;
export declare const MessageInputContext: React.Context<(MessageInputState & import("../components/MessageInput/hooks/useLinkPreviews").EnrichURLsController & {
handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
handleSubmit: (event?: React.BaseSyntheticEvent<object, any, any> | undefined, customMessageData?: Partial<import("stream-chat").Message<DefaultStreamChatGenerics>> | undefined, options?: import("../types/types").SendMessageOptions | undefined) => void;
insertText: (textToInsert: string) => void;
isUploadEnabled: boolean;
maxFilesLeft: number;
numberOfUploads: number;
onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
onSelectUser: (item: import("stream-chat").UserResponse<DefaultStreamChatGenerics>) => void;
recordingController: import("..").RecordingController<DefaultStreamChatGenerics>;
removeAttachments: (ids: string[]) => void;
textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
uploadAttachment: (attachment: import("../components/MessageInput").LocalAttachment<DefaultStreamChatGenerics>) => Promise<import("../components/MessageInput").LocalAttachment<DefaultStreamChatGenerics> | undefined>;
uploadNewFiles: (files: FileList | File[]) => void;
upsertAttachments: (attachments: (import("../components/MessageInput").LocalAttachment<DefaultStreamChatGenerics> | import("stream-chat").Attachment<DefaultStreamChatGenerics>)[]) => void;
}) | undefined>;
export declare const MessageInputContextProvider: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>({ children, value, }: PropsWithChildren<{
value: MessageInputContextValue<StreamChatGenerics, V>;
}>) => React.JSX.Element;
export declare const useMessageInputContext: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(componentName?: string) => MessageInputContextValue<StreamChatGenerics, V>;