import { NostrStreamProvider, StreamProviderStore } from "@/providers"; import { ManualProvider } from "@/providers/manual"; import { findTag } from "@/utils"; import { NostrEvent } from "@snort/system"; import { useSyncExternalStore } from "react"; export function useStreamProvider() { return useSyncExternalStore( c => StreamProviderStore.hook(c), () => StreamProviderStore.snapshot() ); } export function getCurrentStreamProvider(ev?: NostrEvent) { const providers = StreamProviderStore.snapshot(); if (ev) { const service = findTag(ev, "service"); if (service) { return new NostrStreamProvider("", service); } else { return new ManualProvider(); } } return providers.at(0); }