import { ChatObject, MessageObject } from '../../../interfaces'; import { ChatFeedStyles } from './styles'; import { ChatHeaderProps } from './ChatHeader/props'; import { MessageListProps } from './MessageList/props'; import { MessageProps } from './MessageList/Message/props'; import { WelcomeGifProps } from './WelcomeGif/props'; import { MessageFormProps } from './MessageForm/props'; export interface ChatFeedProps extends ChatFeedStyles { // Data messages: MessageObject[]; username?: string; chat?: ChatObject; timezoneOffset?: number; // State isLoading?: boolean; hasMoreMessages?: boolean; // Hooks onMessageLoaderShow?: () => Promise; onMessageLoaderHide?: () => Promise; onBottomMessageShow?: () => Promise; onBottomMessageHide?: () => Promise; onMessageFormSubmit?: (message: MessageObject) => Promise; // Render Functions renderChatFeed?: ( props: ChatFeedProps ) => JSX.Element | Element | React.FC; renderChatHeader?: ( props: ChatHeaderProps ) => JSX.Element | Element | React.FC; renderMessageList?: ( props: MessageListProps ) => JSX.Element | Element | React.FC; renderMessage?: ( props: MessageProps ) => JSX.Element | Element | React.FC; renderWelcomeGif?: ( props: WelcomeGifProps ) => JSX.Element | Element | React.FC; renderMessageForm?: ( props: MessageFormProps ) => JSX.Element | Element | React.FC; }