// Metro module 12315 (f12316). import { memo, useState, useRef, useEffect, useCallback } from "react"; import { YOUTUBE_EMBED_PAGE_TYPE } from "../../../../Constants"; import MediaModalWebView, { PlayerState } from "./MediaModalWebView"; import usePrevious from "../../../../hooks/usePrevious"; import { MediaViewerAnalytics } from "../../MediaViewerAnalyticsManager"; import { getYoutubeVideoIdFromURI, getYoutubeClipVideoIdFromURI } from "../MediaSourceUtil"; import MediaModalYoutubeEmbedError from "./MediaModalYoutubeEmbedError"; import { isAndroid } from "../../../../utils/PlatformUtils"; const baseUrl = `https:${window.GLOBAL_ENV.WEBAPP_ENDPOINT}`; const r32 = memo(function({ visible, style, source, ...props }) { const [state, setState] = useState(PlayerState.UNREADY); const [state2, setState2] = useState(void 0); const previous = usePrevious(state); let c19788_4 = previous; const previous2 = usePrevious(visible); let c19788_5 = previous2; const ref = useRef(null); useEffect(() => { MediaViewerAnalytics.trackMessageEmbedsActionCompleted({ platform: "youtube", action: "attempted" }); }, []); const callback = useCallback((a0) => { const r11 = JSON.parse(a0); const { type, value } = r11; if (type === "onReady") { setState(value === "-1" ? PlayerState.ERRORED : PlayerState.READY); } else if (type === "onError") { let r62 = value; if (typeof r62 === "number") { r62 = value.toString(); } const error = r62 === "2" ? "invalid_parameter" : r62 === "5" ? "html5_error" : r62 === "100" ? "video_not_found" : r62 !== "101" ? r62 !== "150" ? "unknown" : "embed_not_allowed" : "embed_not_allowed"; setState(PlayerState.ERRORED); setState2(error); MediaViewerAnalytics.trackMessageEmbedsActionCompleted({ platform: "youtube", action: "errored", error }); } else if (type === "onStateChange") { const r53 = ({ "-1": PlayerState.UNSTARTED, 0: PlayerState.ENDED, 1: PlayerState.PLAYING, 2: PlayerState.PAUSED, 3: PlayerState.BUFFERING, 5: PlayerState.VIDEO_CUED })[value]; if (r53 != null && r53 in PlayerState) { setState(r53); } } }, []); useEffect(() => { if (ref.current != null && state !== PlayerState.UNREADY) { if ((visible ? c19788_4 === PlayerState.UNREADY : visible) && state === PlayerState.READY) { ref.current.injectJavaScript("window.player.playVideo(); true;"); } if (visible ? !c19788_5 : visible) { ref.current.injectJavaScript("window.player.playVideo(); true;"); } if (visible ? !visible : c19788_5) { ref.current.injectJavaScript("window.player.pauseVideo(); true;"); } } }, [ref, visible, previous2, previous, state]); let r71 = getYoutubeVideoIdFromURI(source.uri); if (r71 == null) { r71 = getYoutubeClipVideoIdFromURI(source.uri); } if (r71 == null) { return null; } if (state === PlayerState.ERRORED && state2 === "embed_not_allowed") { return ; } const props2 = isAndroid() ? { nestedScrollEnabled: true, overScrollMode: "never", domStorageEnabled: true, mixedContentMode: "compatibility" } : {}; const r3 = r71.start == null; let r27 = ""; const r26 = r3 ? "" : `'start': ${r71.start},`; const r25 = r71.clip == null ? "" : `'clip': '${r71.clip}',`; if (r71.clipt != null) { r27 = `'clipt': '${r71.clipt}',`; } return
`, baseUrl }} baseURL={baseUrl} playerState={state} onDataReceived={callback} javaScriptEnabled javaScriptCanOpenWindowsAutomatically {...props2} {...props} />; }); export default r32;