import { useEffect, useRef, useState } from 'react'; import { Send } from 'lucide-react'; import { api } from '../lib/api.js'; function cx(...args) { return args.filter(Boolean).join(' '); } export default function Messages() { const [messages, setMessages] = useState([]); const [loading, setLoading] = useState(true); const [input, setInput] = useState(''); const [sending, setSending] = useState(false); const bottomRef = useRef(null); async function load() { setLoading(true); setMessages(await api.accountGetMessages()); setLoading(false); } useEffect(() => { load(); }, []); useEffect(() => { bottomRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); async function handleSend(e) { e.preventDefault(); const text = input.trim(); if (!text || sending) return; setSending(true); try { const msg = await api.accountSendMessage(text); setMessages((m) => [...m, msg]); setInput(''); } catch (err) { // the user can just retry } finally { setSending(false); } } return (

Написать нам

Сообщения видит команда TopSysOps и ответит вам здесь же.

{loading &&

Загружаем переписку...

} {!loading && messages.length === 0 && (

Пока нет сообщений - напишите нам, если возникли вопросы.

)} {messages.map((m) => (
{m.body}
))}
setInput(e.target.value)} placeholder="Напишите сообщение..." className="flex-1 rounded-md border px-3 py-2 text-sm bg-transparent border-slate-300 dark:border-slate-700" />
); }