import { format } from "date-fns"; import { t } from "i18next"; import { Trans } from "react-i18next"; // import useSocketStore from "../stores/useSocketStore"; import CloseIcon from "./icons/CloseIcon"; import SendChatIcon from "./icons/SendChatIcon"; import Button from "./ui/Button"; import useStreamUserStore from "../stores/useStreamUserStore"; import { FormEvent, useEffect, useRef, useState } from "react"; import useSocketStore from "../stores/useSocketStore"; import useChatStore from "../stores/useChatStore"; import { isMobile } from "react-device-detect"; interface Props { onClose: () => void; } function Chat2({ onClose }: Props) { const { socket } = useSocketStore(); const { me, users } = useStreamUserStore(); // const [messages] = useStateRef([]); const messagesRef = useRef(null); const [messageText, setMessageText] = useState(""); const messageTextRef = useRef(null); const { messages } = useChatStore(); function sendMessage(e: FormEvent) { e.preventDefault(); if (!messageText || messageText === " ") return; socket?.emit("message", messageText); setMessageText(""); } useEffect(() => { if (!messages.length) return; messagesRef.current?.scrollTo({ top: messagesRef.current.scrollHeight, behavior: "smooth", }); }, [messages]); return (

Чат демонстрации

{messages.map((message, index) => (
user.id === me?.id)?.id === message.userId ? "bg-[#C4DDF5]" : "bg-[#F0F1F2]" }`} > {users.find((user) => user.id === me?.id)?.id !== message.userId && (

{users.find((user) => user.id === message.userId)?.name}

)}

{message.text}

{format(new Date(), "HH:mm")}

))}
setMessageText(e.target.value.replace(/\s+/g, " ")) } />
); } export default Chat2;