import { VideoroomChatDto, VideoroomParticipantDto, VideoroomSettingsDto, MessageType, } from '@/proxy/videoroom/models' import React, { useRef, useEffect } from 'react' import { FaTimes, FaUsers, FaUser, FaBullhorn, FaPaperPlane } from 'react-icons/fa' import { Button } from '@/components/ui' interface ChatPanelProps { user: { id: string; name: string; role: string } participants: VideoroomParticipantDto[] chatMessages: VideoroomChatDto[] newMessage: string setNewMessage: (msg: string) => void messageMode: MessageType setMessageMode: (mode: MessageType) => void selectedRecipient: { id: string; name: string } | null setSelectedRecipient: (recipient: { id: string; name: string } | null) => void onSendMessage: (e: React.FormEvent) => void onClose: () => void formatTime: (timestamp: string) => string classSettings: VideoroomSettingsDto } const ChatPanel: React.FC = ({ user, participants, chatMessages, newMessage, setNewMessage, messageMode, setMessageMode, selectedRecipient, setSelectedRecipient, onSendMessage, onClose, formatTime, classSettings, }) => { const messagesEndRef = useRef(null) useEffect(() => { messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }) }, [chatMessages]) const availableRecipients = participants.filter((p) => p.id !== user.id) return (
{/* Header */}

Sohbet

{/* Mesaj Modu */}
{classSettings.allowPrivateMessages && ( )} {user.role === 'teacher' && ( )}
{messageMode === 'private' && ( )}
{/* Mesaj Listesi */}
{chatMessages.length === 0 ? (
Henüz mesaj yok.
) : ( chatMessages.map((m) => (
{m.senderId !== user.id && (
{m.senderName} {m.isTeacher && ' (Öğretmen)'}
)}
{m.message}
{formatTime(m.timestamp)}
)) )}
{/* Mesaj Gönderme */}
setNewMessage(e.target.value)} placeholder="Mesaj yaz..." className="flex-1 px-3 py-2 border border-gray-300 rounded-lg text-sm" />
) } export default ChatPanel