From c29fbaf8ba6b3d3427b498b3d4e70984d3ee843d Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Tue, 7 Feb 2023 17:04:18 -0600 Subject: [PATCH] small fix --- src/hooks/use-user-metadata.ts | 4 ++-- src/services/user-metadata.ts | 29 +++++++++++++++-------------- src/views/user/index.tsx | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/hooks/use-user-metadata.ts b/src/hooks/use-user-metadata.ts index 619399241..08f85e279 100644 --- a/src/hooks/use-user-metadata.ts +++ b/src/hooks/use-user-metadata.ts @@ -2,9 +2,9 @@ import { useMemo } from "react"; import userMetadata from "../services/user-metadata"; import useSubject from "./use-subject"; -export function useUserMetadata(pubkey: string) { +export function useUserMetadata(pubkey: string, stayOpen = false) { const observable = useMemo( - () => userMetadata.requestUserMetadata(pubkey), + () => userMetadata.requestUserMetadata(pubkey, stayOpen), [pubkey] ); const metadata = useSubject(observable) ?? undefined; diff --git a/src/services/user-metadata.ts b/src/services/user-metadata.ts index 5a3ad429e..0909d818c 100644 --- a/src/services/user-metadata.ts +++ b/src/services/user-metadata.ts @@ -56,7 +56,7 @@ class UserMetadataService { ) as BehaviorSubject; } - requestUserMetadata(pubkey: string, useCache = true) { + requestUserMetadata(pubkey: string, stayOpen = false) { const subject = this.getUserSubject(pubkey); const request = () => { @@ -65,19 +65,20 @@ class UserMetadataService { this.update(); } }; - if (useCache) { - if (!subject.getValue()) { - db.get("user-metadata", pubkey).then((cachedEvent) => { - if (cachedEvent) { - try { - subject.next(JSON.parse(cachedEvent.content)); - } catch (e) { - request(); - } - } else request(); - }); - } - } else request(); + + if (!subject.getValue()) { + db.get("user-metadata", pubkey).then((cachedEvent) => { + if (cachedEvent) { + try { + subject.next(JSON.parse(cachedEvent.content)); + } catch (e) { + request(); + } + } else request(); + }); + } + + if (stayOpen) request(); return subject; } diff --git a/src/views/user/index.tsx b/src/views/user/index.tsx index 6e0484b8a..518efe50e 100644 --- a/src/views/user/index.tsx +++ b/src/views/user/index.tsx @@ -24,7 +24,7 @@ export const UserView = () => { throw new Error("No pubkey"); } - const { metadata, loading: loadingMetadata } = useUserMetadata(pubkey); + const { metadata, loading: loadingMetadata } = useUserMetadata(pubkey, true); const label = metadata ? getUserFullName(metadata) || pubkey : pubkey; return (