+layout.svelte (1372B)
1 <script lang="ts"> 2 import { idb, init_theme } from "@radroots/apps-lib-market"; 3 import { nostr_login_nip01 } from "@radroots/apps-nostr"; 4 import { nostr_context_create, nostr_context_default, nostr_key_generate, nostr_relays_clear, nostr_relays_open } from "@radroots/nostr"; 5 import { _env } from "$lib/utils/_env"; 6 import { onMount, type Snippet } from "svelte"; 7 import "../app.css"; 8 9 let { children }: { children: Snippet } = $props(); 10 11 let loaded = $state(false); 12 const nostr_context = nostr_context_default(); 13 const nostr_context_global = nostr_context_create(); 14 15 onMount(async () => { 16 await init_theme(); 17 18 loaded = true; 19 20 const relay_urls = _env.RADROOTS_MARKET_RELAY_URL 21 ? [_env.RADROOTS_MARKET_RELAY_URL] 22 : []; 23 nostr_relays_clear(nostr_context); 24 if (relay_urls.length) nostr_relays_open(nostr_context, relay_urls); 25 26 const global_relays = await idb.read_global("global_relays"); 27 nostr_relays_clear(nostr_context_global); 28 if (!global_relays || !global_relays.length) { 29 console.log(`[nostr] no global relays added`); 30 } else { 31 nostr_relays_open(nostr_context_global, global_relays); 32 } 33 nostr_login_nip01(nostr_key_generate()); 34 }); 35 </script> 36 37 {#if loaded} 38 {@render children()} 39 {/if}