fixing render error because of hook in wrong order
This commit is contained in:
@@ -21,7 +21,6 @@ export default function NirvanaHeader() {
|
|||||||
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
||||||
const [outputMode, setOutputMode] = useRecoilState($selectedOutputMode);
|
const [outputMode, setOutputMode] = useRecoilState($selectedOutputMode);
|
||||||
|
|
||||||
const userVideo = useRef<HTMLVideoElement>();
|
|
||||||
const [userVideoStream, setUserVideoStream] =
|
const [userVideoStream, setUserVideoStream] =
|
||||||
useState<MediaStream>(undefined);
|
useState<MediaStream>(undefined);
|
||||||
|
|
||||||
@@ -30,11 +29,17 @@ export default function NirvanaHeader() {
|
|||||||
navigator.mediaDevices
|
navigator.mediaDevices
|
||||||
.getUserMedia({ video: true, audio: true })
|
.getUserMedia({ video: true, audio: true })
|
||||||
.then((stream: MediaStream) => {
|
.then((stream: MediaStream) => {
|
||||||
if (userVideo?.current) userVideo.current.srcObject = stream;
|
|
||||||
setUserVideoStream(stream);
|
setUserVideoStream(stream);
|
||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (userVideoStream && outputMode === "video")
|
||||||
|
document.querySelector("video").srcObject = userVideoStream;
|
||||||
|
}, [userVideoStream, outputMode]);
|
||||||
|
|
||||||
|
const menuOpen = useMemo(() => Boolean(anchorEl), [anchorEl]);
|
||||||
|
|
||||||
const handleOpenMenu = useCallback((event: React.MouseEvent<HTMLElement>) => {
|
const handleOpenMenu = useCallback((event: React.MouseEvent<HTMLElement>) => {
|
||||||
setAnchorEl(event.currentTarget);
|
setAnchorEl(event.currentTarget);
|
||||||
}, []);
|
}, []);
|
||||||
@@ -45,8 +50,6 @@ export default function NirvanaHeader() {
|
|||||||
|
|
||||||
if (isLoading) return <>loading</>;
|
if (isLoading) return <>loading</>;
|
||||||
|
|
||||||
const menuOpen = useMemo(() => Boolean(anchorEl), [anchorEl]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-row items-center h-12 bg-gray-100">
|
<div className="flex flex-row items-center h-12 bg-gray-100">
|
||||||
<Logo type="small" className="scale-[0.2]" />
|
<Logo type="small" className="scale-[0.2]" />
|
||||||
@@ -61,7 +64,6 @@ export default function NirvanaHeader() {
|
|||||||
{outputMode === "video" && (
|
{outputMode === "video" && (
|
||||||
<video
|
<video
|
||||||
className="ml-2"
|
className="ml-2"
|
||||||
ref={userVideo}
|
|
||||||
height={"50px"}
|
height={"50px"}
|
||||||
width={"50px"}
|
width={"50px"}
|
||||||
muted
|
muted
|
||||||
|
|||||||
Reference in New Issue
Block a user