fix: relays tab on profile

This commit is contained in:
Kieran 2023-11-07 12:33:27 +00:00
parent d60862da11
commit b166427f28
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
2 changed files with 15 additions and 25 deletions

View File

@ -1,28 +1,16 @@
import { useMemo } from "react";
import { HexKey, FullRelaySettings, EventKind, RequestBuilder, ReplaceableNoteStore } from "@snort/system";
import { HexKey, EventKind, RequestBuilder, ReplaceableNoteStore } from "@snort/system";
import { useRequestBuilder } from "@snort/system-react";
import { parseRelayTag } from "./RelaysFeedFollows";
export default function useRelaysFeed(pubkey?: HexKey) {
const sub = useMemo(() => {
if (!pubkey) return null;
const b = new RequestBuilder(`relays:${pubkey.slice(0, 12)}`);
b.withFilter().authors([pubkey]).kinds([EventKind.ContactList]);
b.withFilter().authors([pubkey]).kinds([EventKind.Relays]);
return b;
}, [pubkey]);
const relays = useRequestBuilder(ReplaceableNoteStore, sub);
if (!relays.data?.content) {
return [] as FullRelaySettings[];
}
try {
return Object.entries(JSON.parse(relays.data.content)).map(([url, settings]) => ({
url,
settings,
})) as FullRelaySettings[];
} catch (error) {
console.error(error);
return [] as FullRelaySettings[];
}
return relays.data?.tags.filter(a => a[0] === "r").map(parseRelayTag) ?? [];
}

View File

@ -27,15 +27,7 @@ export default function useRelaysFeedFollows(pubkeys: HexKey[]): Array<RelayList
pubkey: ev.pubkey,
created_at: ev.created_at,
relays: ev.tags
.map(a => {
return {
url: sanitizeRelayUrl(a[1]),
settings: {
read: a[2] === "read" || a[2] === undefined,
write: a[2] === "write" || a[2] === undefined,
},
} as FullRelaySettings;
})
.map(parseRelayTag)
.filter(a => a.url !== undefined),
};
});
@ -47,3 +39,13 @@ export default function useRelaysFeedFollows(pubkeys: HexKey[]): Array<RelayList
return mapFromRelays(notesRelays);
}, [relays]);
}
export function parseRelayTag(tag: Array<string>) {
return {
url: sanitizeRelayUrl(tag[1]),
settings: {
read: tag[2] === "read" || tag[2] === undefined,
write: tag[2] === "write" || tag[2] === undefined,
},
} as FullRelaySettings;
}