You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
723 B
27 lines
723 B
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; |
|
}
|
|
|