import React, { useEffect, useState } from 'react'; import { MultiChatWindowProps } from './props'; import { styles } from './styles'; import { ChatList } from './ChatList'; import { ChatFeed } from './ChatFeed'; import { ChatSettings } from './ChatSettings'; import { ChatAvatars } from './ChatSettings/ChatAvatars'; import { ChatAvatarsProps } from './ChatSettings/ChatAvatars/props'; import { Button } from '../Components/Button'; import { UnorderedListOutlined, SettingOutlined, CloseOutlined, } from '@ant-design/icons'; import { Row, Col } from 'react-grid-system'; import { setConfiguration } from 'react-grid-system'; setConfiguration({ maxScreenClass: 'xl', gutterWidth: 0 }); export const MultiChatWindow: React.FC = ( props: MultiChatWindowProps ) => { if (typeof window == 'undefined') return
; const { chats = [], activeChatId = -1, messages = [] } = props; const [isMobile, setIsMobile] = useState(window.innerWidth < 575); const chat = chats.find((chat) => chat.id === activeChatId); useEffect(() => { function handleResize() { setIsMobile(window.innerWidth < 575); } window.addEventListener('resize', handleResize); }); const renderChatList = () => { return ( ); }; const renderChatSettings = () => { return ( ( <> {isMobile && ( )} ) as unknown as React.FC } renderPeopleSettings={props.renderPeopleSettings} renderPhotosSettings={props.renderPhotosSettings} renderOptionsSettings={props.renderOptionsSettings} style={{ position: isMobile ? 'absolute' : 'inherit', zIndex: isMobile ? 1 : 'inherit', }} /> ); }; return ( {renderChatList()} {renderChatSettings()} {isMobile && props.isMobileChatListOpen && renderChatList()} {isMobile && props.isMobileChatSettingsOpen && renderChatSettings()} ); };