From 2a6ef1fbdce1976f80a0fee8fbe4b0a2a1fcdbc0 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 18 Jan 2024 00:00:00 +0000 Subject: [PATCH] fix: get user relays replace getLoggedInUserRelays with getUserRelays as getLoggedInUserRelays was broken and getUserRelays is more flexible --- src/lib/components/prs/StatusSelector.svelte | 6 +-- src/lib/stores/users.ts | 45 +------------------- 2 files changed, 4 insertions(+), 47 deletions(-) diff --git a/src/lib/components/prs/StatusSelector.svelte b/src/lib/components/prs/StatusSelector.svelte index ad3b9ac..d920feb 100644 --- a/src/lib/components/prs/StatusSelector.svelte +++ b/src/lib/components/prs/StatusSelector.svelte @@ -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 @@ } 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 @@ 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 diff --git a/src/lib/stores/users.ts b/src/lib/stores/users.ts index 4550a0d..8d0e0b6 100644 --- a/src/lib/stores/users.ts +++ b/src/lib/stores/users.ts @@ -116,7 +116,7 @@ export let getUserRelays = async (hexpubkey: string): Promise => { 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 => { 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 => { res(querying_user_relays); } }); - }; - -export let logged_in_user_relays: Writable = writable(undefined); - -export let getLoggedInUserRelays = async (): Promise => { - 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); - } - }); - } - }); - -}; \ No newline at end of file