RelaysFeed.tsx raw

   1  import NormalFeed from '@/components/NormalFeed'
   2  import { checkAlgoRelay } from '@/lib/relay'
   3  import { useFeed } from '@/providers/FeedProvider'
   4  import relayInfoService from '@/services/relay-info.service'
   5  import { useEffect, useState } from 'react'
   6  
   7  export default function RelaysFeed() {
   8    const { relayUrls, markFeedLoaded } = useFeed()
   9    const [isReady, setIsReady] = useState(false)
  10    const [areAlgoRelays, setAreAlgoRelays] = useState(false)
  11  
  12    useEffect(() => {
  13      const init = async () => {
  14        const relayInfos = await relayInfoService.getRelayInfos(relayUrls)
  15        setAreAlgoRelays(relayInfos.every((relayInfo) => checkAlgoRelay(relayInfo)))
  16        setIsReady(true)
  17      }
  18      init()
  19    }, [relayUrls])
  20  
  21    if (!isReady) {
  22      return null
  23    }
  24  
  25    return (
  26      <NormalFeed
  27        subRequests={[{ urls: relayUrls, filter: {} }]}
  28        areAlgoRelays={areAlgoRelays}
  29        isMainFeed
  30        showRelayCloseReason
  31        enableSocialGraphFilter
  32        onInitialLoad={markFeedLoaded}
  33      />
  34    )
  35  }
  36