Browse Source

fix: get user relays

replace getLoggedInUserRelays with getUserRelays as
getLoggedInUserRelays was broken and getUserRelays is more flexible
master
DanConwayDev 2 years ago
parent
commit
2a6ef1fbdc
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 6
      src/lib/components/prs/StatusSelector.svelte
  2. 45
      src/lib/stores/users.ts

6
src/lib/components/prs/StatusSelector.svelte

@ -3,9 +3,8 @@ @@ -3,9 +3,8 @@
import { NDKEvent, NDKRelaySet, type NDKTag } from "@nostr-dev-kit/ndk";
import type { PRStatus } from "./type";
import { selected_pr_full } from "$lib/stores/PR";
import { load } from "../../../routes/repo/[repo_id]/+page";
import { patch_kind } from "$lib/kinds";
import { getLoggedInUserRelays, logged_in_user } from "$lib/stores/users";
import { getUserRelays, logged_in_user } from "$lib/stores/users";
import { selected_repo } from "$lib/stores/repo";
export let status: PRStatus = "Draft";
@ -21,6 +20,7 @@ @@ -21,6 +20,7 @@
}
async function changeStatus(new_status: PRStatus) {
if (!$logged_in_user) return;
let event = new NDKEvent(ndk);
event.kind = patch_kind;
event.tags.push(["t", new_status]);
@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
alert("failed to sign event");
}
try {
let user_relays = await getLoggedInUserRelays();
let user_relays = await getUserRelays($logged_in_user.hexpubkey);
relays = [
...relays,
...(user_relays.ndk_relays

45
src/lib/stores/users.ts

@ -116,7 +116,7 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => { @@ -116,7 +116,7 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => {
unsubscriber = user_relays[hexpubkey].subscribe(querying_user_relays => {
if (querying_user_relays && !querying_user_relays.loading) {
res(querying_user_relays);
unsubscriber();
if (unsubscriber) unsubscriber();
}
});
}
@ -125,10 +125,6 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => { @@ -125,10 +125,6 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => {
loading: true,
ndk_relays: undefined,
});
logged_in_user_relays.set({
loading: true,
ndk_relays: undefined,
});
let relay_list = await ndk.getUser({ hexpubkey }).relayList();
let querying_user_relays = {
loading: false,
@ -138,43 +134,4 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => { @@ -138,43 +134,4 @@ export let getUserRelays = async (hexpubkey: string): Promise<UserRelays> => {
res(querying_user_relays);
}
});
};
export let logged_in_user_relays: Writable<undefined | UserRelays> = writable(undefined);
export let getLoggedInUserRelays = async (): Promise<UserRelays> => {
return new Promise(async (res, rej) => {
let user_relays = get(logged_in_user_relays);
if (user_relays) {
if (!user_relays.loading) return res(user_relays);
let unsubscriber = logged_in_user_relays.subscribe(user_relays => {
if (user_relays && !user_relays.loading) {
res(user_relays);
unsubscriber();
}
});
}
else {
let unsubscriber: Unsubscriber;
unsubscriber = logged_in_user.subscribe(async user => {
if (user) {
if (unsubscriber) unsubscriber();
logged_in_user_relays.set({
loading: true,
ndk_relays: undefined,
});
let relay_list = await ndk.getUser({ hexpubkey: user.hexpubkey }).relayList();
let user_relays = {
loading: false,
ndk_relays: relay_list,
};
logged_in_user_relays.set({ ...user_relays });
res(user_relays);
}
});
}
});
};
Loading…
Cancel
Save