"use client" import React, { useState } from 'react' import { useQuery } from '@apollo/client' import { Card } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Sidebar } from '@/components/dashboard/sidebar' import { useSidebar } from '@/hooks/useSidebar' import { MessengerConversations } from './messenger-conversations' import { MessengerChat } from './messenger-chat' import { MessengerEmptyState } from './messenger-empty-state' import { GET_MY_COUNTERPARTIES } from '@/graphql/queries' import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels' import { MessageCircle } from 'lucide-react' interface Organization { id: string inn: string name?: string fullName?: string type: 'FULFILLMENT' | 'SELLER' | 'LOGIST' | 'WHOLESALE' address?: string phones?: Array<{ value: string }> emails?: Array<{ value: string }> users?: Array<{ id: string, avatar?: string }> createdAt: string } export function MessengerDashboard() { const { getSidebarMargin } = useSidebar() const [selectedCounterparty, setSelectedCounterparty] = useState(null) const { data: counterpartiesData, loading: counterpartiesLoading } = useQuery(GET_MY_COUNTERPARTIES) const counterparties = counterpartiesData?.myCounterparties || [] const handleSelectCounterparty = (counterpartyId: string) => { setSelectedCounterparty(counterpartyId) } const selectedCounterpartyData = counterparties.find((cp: Organization) => cp.id === selectedCounterparty) // Если нет контрагентов, показываем заглушку if (!counterpartiesLoading && counterparties.length === 0) { return (
) } return (
{/* Основной контент */}
{/* Левая панель - список контрагентов */} {/* Разделитель для изменения размера */}
{/* Правая панель - чат */} {selectedCounterparty && selectedCounterpartyData ? ( ) : (

Выберите контрагента

Начните беседу с одним из ваших контрагентов

)}
) }