From 5d36039be7e47c932b31c282cbca83f4093038f3 Mon Sep 17 00:00:00 2001 From: mr0x50 <24775431+mroxso@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:38:38 +0100 Subject: [PATCH] load relays for logged in user (NIP-65) --- app/layout.tsx | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index f5595eb..e522f6e 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,7 +2,7 @@ import { Metadata } from "next"; import "./globals.css"; -import { NostrProvider } from "nostr-react"; +import { NostrProvider, useNostrEvents } from "nostr-react"; import { ThemeProvider } from "@/components/theme-provider"; import { TopNavigation } from "@/components/headerComponents/TopNavigation"; import BottomBar from "@/components/BottomBar"; @@ -18,12 +18,36 @@ export default function RootLayout({ }: Readonly<{ children: React.ReactNode; }>) { + let pubkey = null; + if (typeof window !== 'undefined') { + pubkey = window.localStorage.getItem('pubkey'); + } - const relayUrls = [ + let relayUrls = [ "wss://relay.nostr.band", "wss://relay.damus.io", ]; + 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]); + } + } + } + } + return (