From fdfd2bb2bcf4185b3381ba0d1591d8abb27ee041 Mon Sep 17 00:00:00 2001 From: mr0x50 <24775431+mroxso@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:43:10 +0100 Subject: [PATCH] Refactor relay URL handling and optimize pubkey retrieval in RootLayout --- app/layout.tsx | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index e522f6e..2e9f639 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -10,43 +10,43 @@ import { Inter } from "next/font/google"; import { Toaster } from "@/components/ui/toaster" import Script from "next/script"; import Umami from "@/components/Umami"; +import { useMemo } from "react"; const inter = Inter({ subsets: ["latin"] }); +const DEFAULT_RELAYS = [ + "wss://relay.nostr.band", + "wss://relay.damus.io", +]; + export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { - let pubkey = null; - if (typeof window !== 'undefined') { - pubkey = window.localStorage.getItem('pubkey'); - } + const pubkey = typeof window !== 'undefined' ? window.localStorage.getItem('pubkey') : null; + + const { events } = useNostrEvents({ + filter: { + kinds: [10002], + authors: pubkey ? [pubkey] : [], + limit: 1, + }, + }); - let relayUrls = [ - "wss://relay.nostr.band", - "wss://relay.damus.io", - ]; + const relayUrls = useMemo(() => { + if (!pubkey) return DEFAULT_RELAYS; + if (!events.length) return []; - if (pubkey) { - relayUrls = []; - const { events } = useNostrEvents({ - filter: { - kinds: [10002], - limit: 1, - authors: [pubkey], - }, - }); - - if (events.length > 0) { - const tags = events[0].tags; - for (let i = 0; i < tags.length; i++) { - if (tags[i][0] === "r") { - relayUrls.push(tags[i][1]); - } + const urls: string[] = []; + const tags = events[0].tags; + for (let i = 0; i < tags.length; i++) { + if (tags[i][0] === "r") { + urls.push(tags[i][1]); } } - } + return urls; + }, [events, pubkey]); return (