import { Suspense } from 'react'; import { Await, useLoaderData, useNavigate, useParams } from 'react-router-dom'; import { ArrowLeftIcon, LoaderIcon } from '@shared/icons'; import { User } from '@shared/user'; import { NIP11 } from '@utils/types'; import { RelayEventList } from './components/relayEventList'; export function RelayScreen() { const { url } = useParams(); const data: { relay?: { [key: string]: string } } = useLoaderData(); const navigate = useNavigate(); const getSoftwareName = (url: string) => { const filename = url.substring(url.lastIndexOf('/') + 1); return filename.replace('.git', ''); }; const titleCase = (s: string) => { return s .replace(/^[-_]*(.)/, (_, c) => c.toUpperCase()) .replace(/[-_]+(.)/g, (_, c) => ' ' + c.toUpperCase()); }; return (

Global events

Information

Loading...
} >

Could not load relay information 😬

} > {(resolvedRelay: NIP11) => (

{resolvedRelay.name}

{resolvedRelay.description}

{resolvedRelay.pubkey ? (
Owner:
) : null} {resolvedRelay.contact ? (
Contact:
mailto:{resolvedRelay.contact}
) : null}
Software:
{getSoftwareName(resolvedRelay.software) + ' - ' + resolvedRelay.version}
Supported NIPs:
{resolvedRelay.supported_nips.map((item) => ( {item} ))}
{resolvedRelay.limitation ? (
Limitation
{Object.keys(resolvedRelay.limitation).map((key, index) => { return (

{titleCase(key)}:

{resolvedRelay.limitation[key].toString()}

); })}
) : null} {resolvedRelay.payments_url ? (
Open payment website You need to make a payment to connect this relay
) : null}
)}
); }