p-stream/src/video/components/__old/controls/SourceControl.tsx
Jelle van Snik 6ca3196b75 the start detaching video state from react
Co-authored-by: James Hawkins <jhawki2005@gmail.com>
2023-02-02 22:04:58 +01:00

27 lines
723 B
TypeScript

import { MWStreamQuality, MWStreamType } from "@/backend/helpers/streams";
import { useContext, useEffect, useRef } from "react";
import { VideoPlayerDispatchContext } from "../VideoContext";
interface SourceControlProps {
source: string;
type: MWStreamType;
quality: MWStreamQuality;
}
export function SourceControl(props: SourceControlProps) {
const dispatch = useContext(VideoPlayerDispatchContext);
const didInitialize = useRef(false);
useEffect(() => {
if (didInitialize.current) return;
dispatch({
type: "SET_SOURCE",
url: props.source,
sourceType: props.type,
quality: props.quality,
});
didInitialize.current = true;
}, [props, dispatch]);
return null;
}