You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
import NormalFeed from '@/components/NormalFeed' |
|
import { checkAlgoRelay } from '@/lib/relay' |
|
import logger from '@/lib/logger' |
|
import { useFeed } from '@/providers/FeedProvider' |
|
import relayInfoService from '@/services/relay-info.service' |
|
import { useEffect, useMemo, useState } from 'react' |
|
|
|
export default function RelaysFeed() { |
|
logger.debug('RelaysFeed component rendering') |
|
const { feedInfo, relayUrls } = useFeed() |
|
const [isReady, setIsReady] = useState(false) |
|
const [areAlgoRelays, setAreAlgoRelays] = useState(false) |
|
|
|
// Debug logging |
|
logger.debug('RelaysFeed debug:', { |
|
feedInfo, |
|
relayUrls, |
|
isReady |
|
}) |
|
|
|
useEffect(() => { |
|
const init = async () => { |
|
const relayInfos = await relayInfoService.getRelayInfos(relayUrls) |
|
setAreAlgoRelays(relayInfos.every((relayInfo) => checkAlgoRelay(relayInfo))) |
|
setIsReady(true) |
|
} |
|
init() |
|
}, [relayUrls]) |
|
|
|
// Memoize subRequests before any early returns to avoid Rules of Hooks violation |
|
const subRequests = useMemo(() => [{ urls: relayUrls, filter: {} }], [relayUrls]) |
|
|
|
if (!isReady) { |
|
return null |
|
} |
|
|
|
if (feedInfo.feedType !== 'relay' && feedInfo.feedType !== 'relays' && feedInfo.feedType !== 'all-favorites') { |
|
return null |
|
} |
|
logger.component('RelaysFeed', 'Rendering NormalFeed', { |
|
subRequests: subRequests.length, |
|
relayUrls: relayUrls.length, |
|
areAlgoRelays |
|
}) |
|
|
|
return ( |
|
<NormalFeed |
|
subRequests={subRequests} |
|
areAlgoRelays={areAlgoRelays} |
|
isMainFeed |
|
showRelayCloseReason |
|
/> |
|
) |
|
}
|
|
|