AutorÃa | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'
import Contacts from '../components/contacts/Contacts'
import Chat from '../components/chat/Chat'
import GroupMembers from '../components/group-members/GroupMembers'
import AddMember from '../components/add-member/AddMember'
const CHAT_TABS = {
CHAT: 'CHAT',
DEFAULT: 'DEFAULT',
GROUP_MEMBERS: 'GROUP_MEMBERS',
ADD_GROUP_MEMBER: 'ADD_GROUP_MEMBER',
}
const MobileChat = ({ chatUsers = [], chatGroups = [], timezones = {} }) => {
const [selectedConversation, setSelectedConversation] = useState(null)
const [activeTab, setActiveTab] = useState(CHAT_TABS.DEFAULT)
const openChat = (entity) => {
setSelectedConversation(entity)
setActiveTab(CHAT_TABS.CHAT)
}
const changeTab = (tab) => {
setActiveTab(tab)
}
useEffect(() => {
activeTab === CHAT_TABS.DEFAULT && setSelectedConversation(null)
}, [activeTab])
return (
<>
{activeTab === CHAT_TABS.DEFAULT && (
<Contacts
persons={chatUsers}
groups={chatGroups}
selectedConversation={selectedConversation}
changeConversation={(conversation) => openChat(conversation)}
/>
)}
{activeTab === CHAT_TABS.CHAT && (
<Chat
entity={selectedConversation}
timezones={timezones}
changeTab={changeTab}
/>
)}
{activeTab === CHAT_TABS.ADD_GROUP_MEMBER && (
<AddMember group={selectedConversation} />
)}
{activeTab === CHAT_TABS.GROUP_MEMBERS && (
<GroupMembers group={selectedConversation} />
)}
</>
)
}
export default MobileChat