import React, { useState } from 'react'; import { useSearchParams } from 'react-router-dom'; import { useCommunicationsStore } from './services/communicationsService'; import { CommunicationTab } from './types'; import { CommunicationsHeader } from './components/CommunicationsHeader'; import { MessengersView } from './components/MessengersView'; import { EmailView } from './components/EmailView'; import { ChannelsView } from './components/ChannelsView'; import { ContactsView } from './components/ContactsView'; import { SettingsView } from './components/SettingsView'; import { AddContactModal, ComposeEmailModal, ConnectChannelModal, CreateChannelModal, } from './components/Modals'; export function CommunicationsModule() { const [searchParams, setSearchParams] = useSearchParams(); const { activeTab, setActiveTab } = useCommunicationsStore(); const [isComposeEmailOpen, setIsComposeEmailOpen] = useState(false); const [isCreateChannelOpen, setIsCreateChannelOpen] = useState(false); const [isAddContactOpen, setIsAddContactOpen] = useState(false); const [isConnectChannelOpen, setIsConnectChannelOpen] = useState(false); // Sync tab with URL search param const urlTab = searchParams.get('tab') as CommunicationTab | null; const currentTab = urlTab && ['messengers', 'email', 'channels', 'contacts', 'settings'].includes(urlTab) ? urlTab : activeTab; const handleTabChange = (tab: CommunicationTab) => { setActiveTab(tab); setSearchParams({ tab }); }; return (