import { useFetchRelayInfos } from '@/hooks' import { useFeed } from '@/providers/FeedProvider' import client from '@/services/client.service' import { SearchCheck } from 'lucide-react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import SaveRelayDropdownMenu from '../SaveRelayDropdownMenu' export default function TemporaryRelaySet() { const { t } = useTranslation() const { temporaryRelayUrls } = useFeed() const [relays, setRelays] = useState< { url: string isConnected: boolean }[] >(temporaryRelayUrls.map((url) => ({ url, isConnected: false }))) const { relayInfos } = useFetchRelayInfos(relays.map((relay) => relay.url)) useEffect(() => { const interval = setInterval(() => { const connectionStatusMap = client.listConnectionStatus() setRelays((pre) => { return pre.map((relay) => { const isConnected = connectionStatusMap.get(relay.url) || false return { ...relay, isConnected } }) }) }, 1000) return () => clearInterval(interval) }, []) useEffect(() => { setRelays(temporaryRelayUrls.map((url) => ({ url, isConnected: false }))) }, [temporaryRelayUrls]) if (!relays.length) { return null } return (