Files
pixelstreamingv2/src/components/pages/Stream/PlayerComponent/PlayerComponent.tsx
T
2023-02-28 16:30:16 +05:00

55 lines
1.4 KiB
TypeScript

import "./PlayerStyles.css";
import React, { useEffect, useState } from "react";
import { useHistory, useParams } from "react-router-dom";
import { Sidebar } from "components/pages/Stream/Sidebar/Sidebar";
import { connectSession } from "store/reducers/ActionCreator";
import { useAppDispatch, useAppSelector } from "hooks/redux";
import { sessionSlice } from "store/reducers/sessionSlice";
type link = {
id: string;
};
export const PlayerComponent: React.FC<any> = ({ closeStream }) => {
const { id } = useParams<link>();
const [click, setClick] = useState(false)
const dispatch = useAppDispatch();
const { cleanErrors } = sessionSlice.actions;
const history = useHistory();
useEffect(() => {
dispatch(connectSession(id)).then((res: any) => {
if (res.error) {
alert(res.payload);
}
});
return () => {
dispatch(cleanErrors());
};
}, []);
const { url } = useAppSelector((state) => state.sessionReducer);
const exitPopup = () => {
setClick(prev => !prev)
}
return (
<>
<iframe
onLoad={(e: any) => e.target.focus()}
id="player"
onBlur={(e) => e.target.focus()} /// element loosing focus and keyboard input doesn't work
src={url}
className={"player playerOn"}
security={""}
allowFullScreen={true}
></iframe>
<Sidebar exitPopup={click} closeStream={closeStream}></Sidebar>
</>
);
};