diff --git a/.gitignore b/.gitignore index c2658d7..9cf6fff 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules/ +.idea diff --git a/packages/app/src/Element/RelaysMetadata.tsx b/packages/app/src/Element/RelaysMetadata.tsx index 91b5981..6e63279 100644 --- a/packages/app/src/Element/RelaysMetadata.tsx +++ b/packages/app/src/Element/RelaysMetadata.tsx @@ -12,7 +12,9 @@ const RelayFavicon = ({ url }: { url: string }) => { .replace(/^ws:\/\//, "http://") .replace(/\/$/, ""); const [faviconUrl, setFaviconUrl] = useState(`${cleanUrl}/favicon.ico`); - return setFaviconUrl(Nostrich)} />; + return ( + setFaviconUrl(Nostrich)} alt={`favicon for ${url}`} /> + ); }; interface RelaysMetadataProps { @@ -24,7 +26,7 @@ const RelaysMetadata = ({ relays }: RelaysMetadataProps) => {
{relays?.map(({ url, settings }) => { return ( -
+
{url}
diff --git a/packages/app/src/Feed/RelaysFeed.tsx b/packages/app/src/Feed/RelaysFeed.tsx index a54e7c4..26171c8 100644 --- a/packages/app/src/Feed/RelaysFeed.tsx +++ b/packages/app/src/Feed/RelaysFeed.tsx @@ -7,29 +7,26 @@ export default function useRelaysFeed(pubkey: HexKey) { const sub = useMemo(() => { const x = new Subscriptions(); x.Id = `relays:${pubkey.slice(0, 12)}`; - x.Kinds = new Set([EventKind.Relays]); + x.Kinds = new Set([EventKind.ContactList]); x.Authors = new Set([pubkey]); x.Limit = 1; return x; }, [pubkey]); - const relays = useSubscription(sub, { leaveOpen: false, cache: true }); - const notes = relays.store.notes; - const tags = notes.slice(-1)[0]?.tags || []; - return tags.reduce((rs, tag) => { - const [t, url, ...settings] = tag; - if (t === "r") { - return [ - ...rs, - { - url, - settings: { - read: settings.length === 0 || settings.includes("read"), - write: settings.length === 0 || settings.includes("write"), - }, - }, - ]; - } - return rs; - }, [] as FullRelaySettings[]); + const relays = useSubscription(sub, { leaveOpen: false, cache: false }); + const eventContent = relays.store.notes[0]?.content; + + if (!eventContent) { + return [] as FullRelaySettings[]; + } + + try { + return Object.entries(JSON.parse(eventContent)).map(([url, settings]) => ({ + url, + settings, + })) as FullRelaySettings[]; + } catch (error) { + console.error(error); + return [] as FullRelaySettings[]; + } } diff --git a/packages/app/src/Pages/settings/RelayInfo.tsx b/packages/app/src/Pages/settings/RelayInfo.tsx index 2746fe4..869c332 100644 --- a/packages/app/src/Pages/settings/RelayInfo.tsx +++ b/packages/app/src/Pages/settings/RelayInfo.tsx @@ -76,6 +76,7 @@ const RelayInfo = () => {
{stats.info.supported_nips.map(a => ( navigate(`https://github.com/nostr-protocol/nips/blob/master/${a.toString().padStart(2, "0")}.md`)