diff --git a/packages/app/src/Feed/RelaysFeed.tsx b/packages/app/src/Feed/RelaysFeed.tsx index a54e7c433..26171c892 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[]; + } }