Files
zap.stream/src/hooks/stream-provider.ts
2024-03-06 16:32:21 +00:00

26 lines
731 B
TypeScript

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);
}