diff --git a/src/pages/ChatPage.tsx b/src/pages/ChatPage.tsx index ad3d1f0..7ddc602 100644 --- a/src/pages/ChatPage.tsx +++ b/src/pages/ChatPage.tsx @@ -17,6 +17,11 @@ export default function ChatPage() { const [content, setContent] = useState('') const [messages, setMessages] = useState([]) const [socketState, setSocketState] = useState<'offline' | 'online'>('offline') + const [seqFrom, setSeqFrom] = useState('1') + const [seqTo, setSeqTo] = useState('999999') + const [limit, setLimit] = useState('50') + const [editingMessageId, setEditingMessageId] = useState('') + const [editingContent, setEditingContent] = useState('') const socket = useMemo(() => getSocketClient('frontend-user'), []) @@ -43,7 +48,11 @@ export default function ChatPage() { async function pullMessages() { if (!channelId) return const res = await getApiClient().get(`/channels/${channelId}/messages`, { - params: { seq_from: 1, seq_to: 999999, limit: 100 }, + params: { + seq_from: Number(seqFrom || '1'), + seq_to: Number(seqTo || '999999'), + limit: Number(limit || '50'), + }, }) setMessages(res.data.items ?? []) } @@ -57,6 +66,21 @@ export default function ChatPage() { setContent('') } + async function editMessage() { + if (!channelId || !editingMessageId || !editingContent.trim()) return + await getApiClient().patch(`/channels/${channelId}/messages/${editingMessageId}`, { + content: editingContent, + }) + setEditingContent('') + await pullMessages() + } + + async function deleteMessage(messageId: string) { + if (!channelId || !messageId) return + await getApiClient().delete(`/channels/${channelId}/messages/${messageId}`) + await pullMessages() + } + function onChangeChannel(value: string) { setChannelId(value) const next = new URLSearchParams(searchParams) @@ -81,16 +105,31 @@ export default function ChatPage() {

Socket: {socketState}

onChangeChannel(e.target.value)} placeholder="Channel ID" /> + setSeqFrom(e.target.value)} placeholder="seq_from" /> + setSeqTo(e.target.value)} placeholder="seq_to" /> + setLimit(e.target.value)} placeholder="limit" />
setContent(e.target.value)} placeholder="输入消息" />
+
+ setEditingMessageId(e.target.value)} + placeholder="messageId" + /> + setEditingContent(e.target.value)} placeholder="新内容" /> + +