// source: https://github.com/nostr-dev-kit/ndk-react/ import NDK from '@nostr-dev-kit/ndk'; import Markdown from 'markdown-to-jsx'; import { NostrFetcher } from 'nostr-fetch'; import { PropsWithChildren, createContext, useContext } from 'react'; import { NDKInstance } from '@libs/ndk/instance'; import { LoaderIcon } from '@shared/icons'; import { QUOTES } from '@stores/constants'; interface NDKContext { ndk: undefined | NDK; fetcher: undefined | NostrFetcher; relayUrls: string[]; } const NDKContext = createContext({ ndk: undefined, fetcher: undefined, relayUrls: [], }); const NDKProvider = ({ children }: PropsWithChildren) => { const { ndk, relayUrls, fetcher } = NDKInstance(); if (!ndk) return (
TIP:
{QUOTES[Math.floor(Math.random() * QUOTES.length)]}

Connecting to relays...

); return ( {children} ); }; const useNDK = () => { const context = useContext(NDKContext); if (context === undefined) { throw new Error('import NDKProvider to use useNDK'); } return context; }; export { NDKProvider, useNDK };