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