/// import { ChatObject, MessageObject, PersonObject } from '../../interfaces'; import { ChatEngineStyles } from './styles'; import { ChatListProps } from './ChatList/props'; import { ChatFormProps } from './ChatList/ChatForm/props'; import { ChatCardProps } from './ChatList/ChatCard/props'; import { ChatFeedProps } from './ChatFeed/props'; import { ChatHeaderProps } from './ChatFeed/ChatHeader/props'; import { MessageListProps } from './ChatFeed/MessageList/props'; import { MessageProps } from './ChatFeed/MessageList/Message/props'; import { MessageFormProps } from './ChatFeed/MessageForm/props'; import { WelcomeGifProps } from './ChatFeed/WelcomeGif/props'; import { ChatSettingsProps } from './ChatSettings/props'; import { ChatAvatarsProps } from './ChatSettings/ChatAvatars/props'; import { PeopleSettingsProps } from './ChatSettings/PeopleSettings/props'; import { PhotosSettingsProps } from './ChatSettings/PhotosSettings/props'; import { OptionsSettingsProps } from './ChatSettings/OptionsSettings/props'; export interface MultiChatWindowProps extends ChatEngineStyles { username?: string; chats?: ChatObject[]; activeChatId?: number; messages?: MessageObject[]; peopleToInvite?: PersonObject[]; timezoneOffset?: number; isChatListLoading?: boolean; isChatFeedLoading?: boolean; isChatSettingsLoading?: boolean; hasMoreChats?: boolean; hasMoreMessages?: boolean; isMobileChatListOpen?: boolean; isMobileChatSettingsOpen?: boolean; onChatCardClick?: (chatId: number) => Promise; onChatFormSubmit?: (title: string) => Promise; onChatLoaderShow?: () => Promise; onMessageLoaderShow?: () => Promise; onMessageLoaderHide?: () => Promise; onBottomMessageShow?: () => Promise; onBottomMessageHide?: () => Promise; onMessageFormSubmit?: (message: MessageObject) => Promise; onInvitePersonClick?: (person: PersonObject) => Promise; onRemovePersonClick?: (person: PersonObject) => Promise; onDeleteChatClick?: (chat: ChatObject) => Promise; onMobileChatListClick?: () => Promise; onMobileChatSettingsClick?: () => Promise; onCloseMobileChatSettingsClick?: () => Promise; renderChatList?: (props: ChatListProps) => JSX.Element | Element | React.FC; renderChatForm?: (props: ChatFormProps) => JSX.Element | Element | React.FC; renderChatCard?: (props: ChatCardProps) => JSX.Element | Element | React.FC; 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; renderChatSettings?: (props: ChatSettingsProps) => JSX.Element | Element | React.FC; renderChatAvatars?: (props: ChatAvatarsProps) => JSX.Element | Element | React.FC; renderPeopleSettings?: (props: PeopleSettingsProps) => JSX.Element | Element | React.FC; renderPhotosSettings?: (props: PhotosSettingsProps) => JSX.Element | Element | React.FC; renderOptionsSettings?: (props: OptionsSettingsProps) => JSX.Element | Element | React.FC; }