@fishjam-cloud/react-client
Version:
React client library for Fishjam
18 lines (17 loc) • 632 B
JavaScript
import { receiveLivestream } from "@fishjam-cloud/ts-client";
import { useCallback, useRef, useState } from "react";
export const useLivestream = () => {
const [stream, setStream] = useState(null);
const resultRef = useRef(null);
const connect = useCallback(async (url, token) => {
const result = await receiveLivestream(url, token);
resultRef.current = result;
setStream(result.stream);
}, []);
const disconnect = useCallback(() => {
setStream(null);
resultRef.current?.stop();
resultRef.current = null;
}, []);
return { stream, connect, disconnect };
};