diff --git a/src/components/messenger/messenger-attachments.tsx b/src/components/messenger/messenger-attachments.tsx
index 6f81efb..f5e8515 100644
--- a/src/components/messenger/messenger-attachments.tsx
+++ b/src/components/messenger/messenger-attachments.tsx
@@ -8,6 +8,7 @@ import { Card } from '@/components/ui/card'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
import { Badge } from '@/components/ui/badge'
+import { ImageLightbox } from '@/components/ui/image-lightbox'
import {
FileText,
Image,
@@ -51,6 +52,7 @@ interface MessengerAttachmentsProps {
export function MessengerAttachments({ counterparty }: MessengerAttachmentsProps) {
const { user } = useAuth()
const [activeTab, setActiveTab] = useState('all')
+ const [lightboxImage, setLightboxImage] = useState<{ url: string; fileName: string; fileSize?: number } | null>(null)
// Загружаем все сообщения для получения вложений
const { data: messagesData, loading } = useQuery(GET_MESSAGES, {
@@ -117,6 +119,14 @@ export function MessengerAttachments({ counterparty }: MessengerAttachmentsProps
document.body.removeChild(link)
}
+ const handleImageClick = (imageUrl: string, fileName?: string, fileSize?: number) => {
+ setLightboxImage({
+ url: imageUrl,
+ fileName: fileName || 'Изображение',
+ fileSize
+ })
+ }
+
const renderFileIcon = (fileType?: string) => {
if (!fileType) return
+
{message.fileName || (message.type === 'VOICE' ? 'Голосовое сообщение' : message.type === 'IMAGE' ? 'Изображение' : 'Файл')} @@ -189,13 +215,17 @@ export function MessengerAttachments({ counterparty }: MessengerAttachmentsProps {message.voiceDuration && ( {Math.floor(message.voiceDuration / 60)}:{(message.voiceDuration % 60).toString().padStart(2, '0')} )} + {message.type === 'IMAGE' && ( + • Нажмите для просмотра + )}