Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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