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`)