lib.ts (882B)
1 import { writable } from "svelte/store"; 2 import { NostrSession } from "./nostr-session.svelte"; 3 4 export const home_menu_visible = (() => { 5 const { subscribe, set, update } = writable<boolean>(false); 6 return { 7 subscribe, 8 set, 9 toggle: () => update(value => !value), 10 }; 11 })(); 12 13 export const nostr_session = (() => { 14 const { subscribe, set, update: _update } = writable<NostrSession | null>(null); 15 16 return { 17 subscribe, 18 get: (): NostrSession | null => { 19 let value: NostrSession | null; 20 const unsubscribe = subscribe(v => (value = v)); 21 unsubscribe(); 22 return value!; 23 }, 24 set: (npub: string | null): NostrSession | null => { 25 const profile = npub ? new NostrSession(npub) : null; 26 set(profile); 27 return profile; 28 }, 29 }; 30 })();