import { useEffect, useRef, useState } from "react"; import players from "video.js"; import VideoPlayer from "./VideoPlayer"; import type { IAttachmentResponse } from "../../api/Attachments"; import { get } from "../../request"; interface IWidget { fileName?: string; fileId?: string; src?: string; type?: string; } const VideoWidget = ({ _____fileName, fileId, src, type }: IWidget) => { const playerRef = useRef(); const [url, setUrl] = useState(); useEffect(() => { if (fileId) { const url = `/v2/attachment/${fileId}`; console.info("VideoWidget api request", url); get(url).then((json) => { console.debug("VideoWidget api response", json); if (json.ok) { setUrl(json.data.url); } }); } }, [fileId]); useEffect(() => { if (src) { setUrl(src); } }, [src]); const handlePlayerReady = (player: players.Player) => { if (playerRef.current) { playerRef.current = player; player.on("waiting", () => { console.log("player is waiting"); }); player.on("dispose", () => { console.log("player will dispose"); }); } }; return ( ); }; export default VideoWidget;