Relays.tsx raw
1 import { useFetchRelayList } from '@/hooks'
2 import { toOthersRelaySettings, toRelaySettings } from '@/lib/link'
3 import { SecondaryPageLink } from '@/PageManager'
4 import { useNostr } from '@/providers/NostrProvider'
5 import { Loader } from 'lucide-react'
6 import { useTranslation } from 'react-i18next'
7
8 export default function Relays({ pubkey }: { pubkey: string }) {
9 const { t } = useTranslation()
10 const { pubkey: accountPubkey } = useNostr()
11 const { relayList, isFetching } = useFetchRelayList(pubkey)
12
13 return (
14 <SecondaryPageLink
15 to={accountPubkey === pubkey ? toRelaySettings('mailbox') : toOthersRelaySettings(pubkey)}
16 className="flex gap-1 hover:underline w-fit items-center"
17 >
18 {isFetching ? <Loader className="animate-spin size-4" /> : relayList.originalRelays.length}
19 <div className="text-muted-foreground">{t('Relays')}</div>
20 </SecondaryPageLink>
21 )
22 }
23