InfraHub
40 строк · 1.4 Кб
1import { useState, useEffect } from 'react'
2
3export function Chat() {
4const [messages, setMessages] = useState([])
5const [newMessage, setNewMessage] = useState('')
6
7useEffect(() => {
8// Здесь мы будем загружать сообщения с бэкенда
9// И, возможно, устанавливать WebSocket соединение для real-time чата
10}, [])
11
12const handleSendMessage = (e) => {
13e.preventDefault()
14// Здесь мы будем отправлять сообщение на бэкенд
15// И добавлять его в список сообщений
16setMessages([...messages, { text: newMessage, sender: 'me' }])
17setNewMessage('')
18}
19
20return (
21<div className="h-[500px] flex flex-col">
22<div className="flex-1 overflow-y-auto p-4 space-y-2">
23{messages.map((message, index) => (
24<div key={index} className={`p-2 rounded ${message.sender === 'me' ? 'bg-blue-100 ml-auto' : 'bg-gray-100'}`}>
25{message.text}
26</div>
27))}
28</div>
29<form onSubmit={handleSendMessage} className="p-4 border-t">
30<input
31type="text"
32value={newMessage}
33onChange={(e) => setNewMessage(e.target.value)}
34placeholder="Введите сообщение..."
35className="w-full p-2 border rounded"
36/>
37</form>
38</div>
39)
40}