import { Button } from '@heroui/button' import { Card, CardBody } from '@heroui/card' import { Input } from '@heroui/input' import { useLocalStorage } from '@uidotdev/usehooks' import { useCallback, useState } from 'react' import toast from 'react-hot-toast' import key from '@/const/key' import OneBotMessageList from '@/components/onebot/message_list' import OneBotSendModal from '@/components/onebot/send_modal' import WSStatus from '@/components/onebot/ws_status' import { useWebSocketDebug } from '@/hooks/use-websocket-debug' export default function WSDebug() { const url = new URL(window.location.origin) url.port = '3001' url.protocol = 'ws:' const defaultWsUrl = url.href const [socketConfig, setSocketConfig] = useLocalStorage(key.wsDebugConfig, { url: defaultWsUrl, token: '' }) const [inputUrl, setInputUrl] = useState(socketConfig.url) const [inputToken, setInputToken] = useState(socketConfig.token) const { sendMessage, readyState, FilterMessagesType, filteredMessages } = useWebSocketDebug(socketConfig.url, socketConfig.token) const handleConnect = useCallback(() => { if (!inputUrl.startsWith('ws://') && !inputUrl.startsWith('wss://')) { toast.error('WebSocket URL 不合法') return } setSocketConfig({ url: inputUrl, token: inputToken }) }, [inputUrl, inputToken]) return ( <>