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 && messages.length === 0 && (Пока нет сообщений - напишите нам, если возникли вопросы.
)} {messages.map((m) => (