// Metro module 14160 (f14161). import * as Module19 from "react"; import { useRef, useMemo, useState, useCallback, useEffect, useLayoutEffect } from "react"; import { ActivityIndicator, Pressable, View, StyleSheet } from "react-native"; import AppStateStore from "../../../../stores/native/AppStateStore"; import VideoQuestUIStore from "../../VideoQuestUIStore"; import { QuestsExperimentLocations } from "../../QuestConstants"; import { AppStates, ComponentActions } from "../../../../Constants"; import Module712 from "../../../../_bundle/Module712"; import Video from "../../../../_bundle/Video_8143"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import Module689 from "../../../../_bundle/Module689"; import { useVideoQuestModalContext } from "./VideoQuestModalContext"; import { useQuestTaskDetails } from "../../hooks/QuestHooks"; import { getQuestAsset, QuestAssetType } from "../../lib/AssetUtils"; import { shallow } from "../../../../_bundle/Module3802"; import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../../reanimated/ReanimatedRexport"; import * as _spring from "../../../../design/animation/reanimated/spring/spring"; import * as _springPresets from "../../../../design/animation/reanimated/spring/springPresets"; import * as _timing from "../../../../design/animation/reanimated/timing/timing"; import * as _timingPresets from "../../../../design/animation/reanimated/timing/timingPresets"; import useVideoQuestPlayerAnalytics from "./hooks/useVideoQuestPlayerAnalytics"; import { getDefaultWatchVideoTask } from "../../utils/QuestTaskUtils"; import { getVideoQoEMetricsConfig, MobileMuxWrapper } from "../../../video-qoe/index"; import { getConstants } from "../../../../utils/native/ClientInfoUtils"; import { isAndroid, isIOS } from "../../../../utils/PlatformUtils"; import { ComponentDispatch } from "../../../../utils/ComponentDispatchUtils"; import { sendVideoProgress } from "../../utils/VideoQuestUtils"; import { updateOptimisticProgress } from "../../QuestActionCreators"; import { useStateFromStores } from "../../../../_bundle/Module589"; import SentryUtils_native from "../../../../utils/SentryUtils.native"; import useSafeAreaInsets_native from "../../../safe_area/useSafeAreaInsets.native"; import { intl, t } from "../../../../intl/index.native"; import { VideoQuestCaptions } from "./captions/VideoQuestCaptions"; import { PressableOpacity } from "../../../../design/void/Pressables/native/Pressables"; import { ClosedCaptionsOutlineIcon } from "../../../../design/components/Icon/native/redesign/generated/ClosedCaptionsOutlineIcon"; import { TranscriptOutlineIcon } from "../../../../design/components/Icon/native/redesign/generated/TranscriptOutlineIcon"; import { VideoQuestPlayerControlButton } from "./VideoQuestPlayerControlButton"; import { SkipBackwardIcon } from "./icons/SkipBackwardIcon"; import { RetryIcon } from "../../../../design/components/Icon/native/redesign/generated/RetryIcon"; import { PlayIcon } from "../../../../design/components/Icon/native/redesign/generated/PlayIcon"; import { PauseIcon } from "../../../../design/components/Icon/native/redesign/generated/PauseIcon"; import { SkipForwardIcon } from "./icons/SkipForwardIcon"; import { FullscreenEnterIcon } from "../../../../design/components/Icon/native/redesign/generated/FullscreenEnterIcon"; let hasVideoEnded, canSeekForward, useStyles, PlayerState, __initData, __initData2, __initData3; let c9911_15 = { left: Module712.space.PX_16, right: Module712.space.PX_16, top: Module712.space.PX_16, bottom: Module712.space.PX_16 }; let Component = Module19.memo(Video); const hasVideoEnded2 = function hasVideoEnded(a0, a1) { return a0 >= a1 - 1; }; hasVideoEnded2.__closure = {}; hasVideoEnded2.__workletHash = 3281537893520; hasVideoEnded2.__initData = { code: "function hasVideoEnded_VideoQuestPlayerTsx1(currentTime,videoDuration){return currentTime>=videoDuration-1;}" }; hasVideoEnded = hasVideoEnded2; const canSeekForward2 = function canSeekForward(a0, a1, a2, a3) { const r2 = a0 >= a2 - 1; return r2 ? !r2 : a3 ? a3 : a0 <= a1 - 1; }; canSeekForward2.__closure = { hasVideoEnded }; canSeekForward2.__workletHash = 741911733910; canSeekForward2.__initData = { code: "function canSeekForward_VideoQuestPlayerTsx2(currentTime,maxTimestamp,videoDuration,isQuestCompleted){const{hasVideoEnded}=this.__closure;return!hasVideoEnded(currentTime,videoDuration)&&(isQuestCompleted||currentTime<=maxTimestamp-1);}" }; canSeekForward = canSeekForward2; useStyles = createStyles({ container: { ...StyleSheet.absoluteFillObject }, loadingContainer: { ...StyleSheet.absoluteFillObject, backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST, justifyContent: "center", alignItems: "center" }, bufferingSpinner: { position: "absolute" }, bufferingSpinnerCentered: { ...StyleSheet.absoluteFillObject, justifyContent: "center", alignItems: "center" }, video: { height: "100%", width: "100%" }, videoContainer: { position: "relative", height: "100%", width: "100%" }, controls: { ...StyleSheet.absoluteFillObject, backgroundColor: Module689(Module712.unsafe_rawColors.BLACK).alpha(0.5).hex(), justifyContent: "center", alignItems: "center", flexDirection: "column" }, controlsTopBottom: { flexDirection: "row", justifyContent: "flex-end", padding: Module712.space.PX_8, position: "absolute", left: 0, right: 0 }, controlsMiddle: { justifyContent: "center", alignItems: "center", flexGrow: 1, flexDirection: "row", gap: Module712.space.PX_24, pointerEvents: "box-none" }, controlsTop: { top: 0 }, controlsBottom: { bottom: 0 }, progressContainer: { position: "absolute", bottom: 0, right: 0, left: 0, justifyContent: "flex-end", height: Module712.space.PX_16, overflow: "hidden" }, progress: { height: 1, backgroundColor: Module712.colors.WHITE, shadowOffset: { width: 0, height: 0 }, shadowRadius: 6, shadowOpacity: 1, elevation: 5, shadowColor: "#FFFFFF" }, icon: { color: Module712.colors.TEXT_DEFAULT }, iconDisabled: { color: Module712.colors.TEXT_SUBTLE }, controlButton: { padding: Module712.space.PX_8 } }); PlayerState = { PAUSED: "paused", PLAYING: "playing", ENDED: "ended", LOADING: "loading", ERRORED: "errored" }; __initData = { code: "function shouldShowControls_VideoQuestPlayerTsx3(){const{hasLoaded,showControls,playerState,PlayerState,isVideoEnded,externallyPaused}=this.__closure;return hasLoaded&&(showControls.get()||playerState===PlayerState.PAUSED||playerState===PlayerState.ENDED||playerState===PlayerState.ERRORED||isVideoEnded||externallyPaused);}" }; __initData2 = { code: "function VideoQuestPlayerTsx4(){const{shouldShowControls,withSpring,SUBTLE_SPRING}=this.__closure;const show=shouldShowControls();return{opacity:withSpring(show?1:0,SUBTLE_SPRING),pointerEvents:show?'auto':'none'};}" }; __initData3 = { code: "function VideoQuestPlayerTsx5(){const{withTiming,progress,timingFast}=this.__closure;return{width:withTiming(progress.get()*100+\"%\",timingFast,'animate-always')};}" }; const r159 = Module19.memo(function(a0) { let r420, R3aFPe, children2, children3, props4; let memo2, state, setState, targetSeconds, c20965_14, c20965_15, state2, setState2, ref2, state3, setState3, ref3, ref4, ref5, ref6, c20965_25, sharedValue, shouldShowControls2, sharedValue2, ref7, handleEndAnalytics, handleErrorAnalytics, handleLoadAnalytics, handleLoadStartAnalytics, handlePausePlaybackAnalytics, handleProgressAnalytics, handleReadyForDisplayAnalytics, handleResumePlaybackAnalytics, handleSeekAnalytics, ref8, id, gameTitle, url, videoTitle, videoStreamType, setState4, callback, callback2, callback3, callback4, c20965_50, ref9, ref10, callback5; const { style, onLoad, onEnd, onToggleFullscreen, orientation, contentInsets, handleToggleCaptions, handleOpenTranscript, isFullscreen, externallyPaused, captionsEnabled = false, sourceQuestContent } = a0; let hasCaptionAsset = a0.hasCaptionAsset; if (hasCaptionAsset === void 0) { hasCaptionAsset = true; } let hasTranscriptAsset = a0.hasTranscriptAsset; if (hasTranscriptAsset === void 0) { hasTranscriptAsset = true; } memo2 = void 0; state = void 0; setState = void 0; targetSeconds = void 0; c20965_14 = void 0; c20965_15 = void 0; state2 = void 0; setState2 = void 0; ref2 = void 0; state3 = void 0; setState3 = void 0; ref3 = void 0; ref4 = void 0; ref5 = void 0; ref6 = void 0; c20965_25 = void 0; sharedValue = void 0; shouldShowControls2 = void 0; sharedValue2 = void 0; ref7 = void 0; handleEndAnalytics = void 0; handleErrorAnalytics = void 0; handleLoadAnalytics = void 0; handleLoadStartAnalytics = void 0; handlePausePlaybackAnalytics = void 0; handleProgressAnalytics = void 0; handleReadyForDisplayAnalytics = void 0; handleResumePlaybackAnalytics = void 0; handleSeekAnalytics = void 0; ref8 = void 0; id = void 0; gameTitle = void 0; url = void 0; videoTitle = void 0; videoStreamType = void 0; setState4 = void 0; callback = void 0; callback2 = void 0; callback3 = void 0; callback4 = void 0; c20965_50 = void 0; ref9 = void 0; ref10 = void 0; callback5 = void 0; const styles = useStyles(); const ref = useRef(null); const videoQuestModalContext = useVideoQuestModalContext(); const { quest, videoSessionId } = videoQuestModalContext; const questTaskDetails = useQuestTaskDetails(quest); let isQuestCompleted = quest.userStatus?.completedAt != null; let c20965_8 = isQuestCompleted; const memo = useMemo(() => getQuestAsset(quest, QuestAssetType.VIDEO_PLAYER_VIDEO, void 0, true), [quest]); memo2 = useMemo(() => getQuestAsset(quest, QuestAssetType.VIDEO_PLAYER_VIDEO_HLS, void 0, true), [quest]); const videoAssetId = memo2?.url != null ? QuestAssetType.VIDEO_PLAYER_VIDEO_HLS : QuestAssetType.VIDEO_PLAYER_VIDEO; [state, setState] = useState(questTaskDetails.targetSeconds); targetSeconds = questTaskDetails.targetSeconds; const r58 = VideoQuestUIStore((a0) => a0.setVideoProgress); c20965_14 = r58; const r45 = VideoQuestUIStore((a0) => { let r8 = a0.videoProgress[quest.id]; if (r8 == null) { r8 = { timestampSec: questTaskDetails.progressSeconds, duration: state, maxTimestampSec: questTaskDetails.progressSeconds }; } return r8; }, shallow); c20965_15 = r45; [state2, setState2] = useState(PlayerState.LOADING); ref2 = useRef(false); let state4; [state4, setState3] = useState(false); state3 = state4; ref3 = useRef(questTaskDetails.progressSeconds); ref4 = useRef([]); ref5 = useRef(null); ref6 = useRef(0); const isVideoEnded = (state3 ? state2 === PlayerState.ENDED : state3) && r45.timestampSec >= r45.duration - 1; c20965_25 = isVideoEnded; sharedValue = useSharedValue(false); const shouldShowControls = function shouldShowControls() { let r1 = state3; if (state3) { r1 = sharedValue.get() || state2 === PlayerState.PAUSED || state2 === PlayerState.ENDED || state2 === PlayerState.ERRORED || c20965_25 || externallyPaused; } return r1; }; shouldShowControls.__closure = { hasLoaded: state3, showControls: sharedValue, playerState: state2, PlayerState, isVideoEnded, externallyPaused }; shouldShowControls.__workletHash = 11602236169344; shouldShowControls.__initData = __initData; shouldShowControls2 = shouldShowControls; const G = function G() { let r5 = state3; if (state3) { r5 = sharedValue.get() || state2 === PlayerState.PAUSED || state2 === PlayerState.ENDED || state2 === PlayerState.ERRORED || c20965_25 || externallyPaused; } return { opacity: _spring.withSpring(r5 ? 1 : 0, _springPresets.SUBTLE_SPRING), pointerEvents: r5 ? "auto" : "none" }; }; G.__closure = { shouldShowControls: shouldShowControls2, withSpring: _spring.withSpring, SUBTLE_SPRING: _springPresets.SUBTLE_SPRING }; G.__workletHash = 6174625876255; G.__initData = __initData2; const animatedStyle = useAnimatedStyle(G); if (state3) { state4 = sharedValue.get() || state2 === PlayerState.PAUSED || state2 === PlayerState.ENDED || state2 === PlayerState.ERRORED || isVideoEnded || externallyPaused; } sharedValue2 = useSharedValue(0); const U = () => ({ width: _timing.withTiming(100 * sharedValue2.get() + "%", _timingPresets.timingFast, "animate-always") }); U.__closure = { withTiming: _timing.withTiming, progress: sharedValue2, timingFast: _timingPresets.timingFast }; U.__workletHash = 4647711667921; U.__initData = __initData3; const animatedStyle2 = useAnimatedStyle(U); ref7 = useRef(-1); const callback6 = useCallback((c27647_0) => function(...args) { clearTimeout(ref7.current); sharedValue.set(true); ref7.current = setTimeout(() => { sharedValue.set(false); }, 2000); if (c27647_0 != null) { return c27647_0.apply(void 0, [...args]); } }, [sharedValue]); const videoQuestPlayerAnalytics = useVideoQuestPlayerAnalytics({ duration: state, isQuestCompleted, playerState: state2, questId: quest.id, videoSessionId, videoAssetId, sourceQuestContent }); const handleBufferAnalytics2 = videoQuestPlayerAnalytics.handleBufferAnalytics; handleEndAnalytics = videoQuestPlayerAnalytics.handleEndAnalytics; handleErrorAnalytics = videoQuestPlayerAnalytics.handleErrorAnalytics; handleLoadAnalytics = videoQuestPlayerAnalytics.handleLoadAnalytics; handleLoadStartAnalytics = videoQuestPlayerAnalytics.handleLoadStartAnalytics; handlePausePlaybackAnalytics = videoQuestPlayerAnalytics.handlePausePlaybackAnalytics; handleProgressAnalytics = videoQuestPlayerAnalytics.handleProgressAnalytics; handleReadyForDisplayAnalytics = videoQuestPlayerAnalytics.handleReadyForDisplayAnalytics; handleResumePlaybackAnalytics = videoQuestPlayerAnalytics.handleResumePlaybackAnalytics; handleSeekAnalytics = videoQuestPlayerAnalytics.handleSeekAnalytics; ref8 = useRef(null); id = quest.id; gameTitle = quest.config.messages.gameTitle; let r64 = memo2?.url; if (r64 == null) { r64 = memo?.url; } url = r64; const defaultWatchVideoTask = getDefaultWatchVideoTask(quest.config); videoTitle = defaultWatchVideoTask == null ? void 0 : defaultWatchVideoTask.messages.videoTitle; videoStreamType = memo2?.url != null ? "hls" : "mp4"; useEffect(() => { if (ref.current != null && url != null && url.length !== 0 && getVideoQoEMetricsConfig({ location: QuestsExperimentLocations.VIDEO_MODAL_MOBILE }).externalAnalyticsEnabled) { const constants = getConstants(); ref8.current = new MobileMuxWrapper({ videoRef: ref.current, feature: "quests", appVersion: constants.Version, releaseChannel: constants.ReleaseChannel, contentMetadata: { contentId: url, videoStreamType, contentType: "quests", durationMs: 1000 * targetSeconds, title: videoTitle, questId: id, gameName: gameTitle } }); ref8.current.initialize(); return () => { if (ref8.current != null) { ref8.current.onProgress(ref3.current); ref8.current.destroy(); ref8.current = null; } }; } }, [id, gameTitle, targetSeconds, url, videoTitle, videoStreamType]); let state5; [state5, setState4] = useState(false); const callback7 = useCallback(() => { handleReadyForDisplayAnalytics(); const current2 = ref8.current; if (current2 != null) { current2.onReadyForDisplay(); } setState4(true); }, [handleReadyForDisplayAnalytics]); callback = useCallback((a0) => { if (ref.current != null) { const current2 = Math.max(0, Math.min(a0, c20965_15.maxTimestampSec)); if (isAndroid()) { ref6.current = (ref6.current + 1) % 100; ref.current.seek(current2 + 0.0001 * ref6.current); } else { ref.current.seek(current2); } ref5.current = current2; } }, [r45.maxTimestampSec]); const callback8 = useCallback((a0) => { const { duration, videoTracks, trackId, naturalSize } = a0; setState(duration); setState3(true); handleLoadAnalytics(); const current2 = ref8.current; if (current2 != null) { current2.onLoad(duration); } if (naturalSize != null) { const current3 = ref8.current; if (current3 != null) { current3.updateVideoSourceDimensions(naturalSize.width, naturalSize.height); } } if (videoTracks != null && videoTracks.length > 0 && trackId != null && trackId.length > 0) { const current4 = ref8.current; if (current4 != null) { current4.onVideoTrackChange(trackId, videoTracks); } } if (ref.current != null) { const timestampSec = c20965_15.timestampSec; if ((c20965_8 ? !c20965_8 : timestampSec > 5) && timestampSec < duration - 3) { callback(timestampSec - 1); } setState2(PlayerState.PLAYING); if (onLoad != null) { onLoad(a0); } } }, [isQuestCompleted, r45.timestampSec, handleLoadAnalytics, onLoad, callback]); callback2 = useCallback(function(r3 = {}) { let shouldRestartVideo = r3.shouldRestartVideo; if (shouldRestartVideo === void 0) { shouldRestartVideo = true; } L16: { L14: { if (state2 !== PlayerState.ERRORED) { if (c20965_25 && shouldRestartVideo) { break L14; } if (state2 !== PlayerState.PAUSED && state2 !== PlayerState.LOADING) { if (state2 !== PlayerState.PLAYING) { break L16; } setState2(PlayerState.PAUSED); handlePausePlaybackAnalytics(); const current2 = ref8.current; if (current2 == null) { break L16; } current2.onPause(); break L16; } setState2(PlayerState.PLAYING); handleResumePlaybackAnalytics(); const current3 = ref8.current; if (current3 == null) { break L16; } current3.onPlay(); break L16; } } callback(0); setState2(PlayerState.PLAYING); handleResumePlaybackAnalytics(); const current4 = ref8.current; if (current4 != null) { current4.onPlay(); } } }, [state2, handlePausePlaybackAnalytics, handleResumePlaybackAnalytics, isVideoEnded, callback]); const callback9 = useCallback(() => callback2(), [callback2]); callback3 = useCallback(() => { ref2.current = false; if (state2 === PlayerState.PLAYING) { ref2.current = true; setState2(PlayerState.PAUSED); handlePausePlaybackAnalytics(); const current2 = ref8.current; if (current2 != null) { current2.onPause(); } } }, [state2, handlePausePlaybackAnalytics]); callback4 = useCallback(() => { if (ref2.current) { ref2.current = false; if (state2 !== PlayerState.ERRORED) { setState2(PlayerState.PLAYING); handleResumePlaybackAnalytics(); const current2 = ref8.current; if (current2 != null) { current2.onPlay(); } } } }, [state2, handleResumePlaybackAnalytics]); useEffect(() => { ComponentDispatch.subscribe(ComponentActions.QUEST_GAME_LINK_OPENED, callback3); ComponentDispatch.subscribe(ComponentActions.QUEST_APP_STORE_OVERLAY_FINISHED, callback4); return () => { ComponentDispatch.unsubscribe(ComponentActions.QUEST_GAME_LINK_OPENED, callback3); ComponentDispatch.unsubscribe(ComponentActions.QUEST_APP_STORE_OVERLAY_FINISHED, callback4); }; }, [callback3, callback4]); const callback10 = useCallback(() => { if (onToggleFullscreen != null) { onToggleFullscreen({ orientation }); } }, [onToggleFullscreen, orientation]); const callback11 = useCallback(() => { if (sharedValue.get()) { sharedValue.set(false); } callback2({ shouldRestartVideo: false }); }, [sharedValue, callback2]); const callback12 = useCallback((a0) => { let r7 = ref4.current.shift(); if (r7 == null) { r7 = null; } if (ref.current != null) { ref3.current = a0.currentTime; ref5.current = null; if (state > 0) { sharedValue2.set(a0.currentTime / state); c20965_14(quest.id, a0.currentTime, state); } handleSeekAnalytics(r7, a0.currentTime); const current2 = ref8.current; if (current2 != null) { current2.updatePlayheadTime(a0.currentTime); } const current3 = ref8.current; if (current3 != null) { current3.onSeek(); } } }, [state, sharedValue2, handleSeekAnalytics, quest.id, r58]); let disabled = state2 === PlayerState.ERRORED; if (!disabled) { const { timestampSec, maxTimestampSec } = r45; const r10 = timestampSec >= r45.duration - 1; let r8 = !r10; if (!r10) { if (!isQuestCompleted) { isQuestCompleted = timestampSec <= maxTimestampSec - 1; } r8 = isQuestCompleted; } disabled = !r8; } c20965_50 = disabled; const callback13 = useCallback(() => { if (!c20965_50) { let current2 = ref5.current; if (current2 == null) { current2 = sharedValue2.get() * state; } ref4.current.push(current2); callback(current2 + 10); } }, [callback, state, sharedValue2, disabled]); const onPress = callback6(useCallback(() => { let current2 = ref5.current; if (current2 == null) { current2 = sharedValue2.get() * state; } ref4.current.push(current2); callback(current2 - 10); if (state2 === PlayerState.ENDED) { setState2(PlayerState.PLAYING); } }, [callback, state, sharedValue2, state2])); const onPress2 = callback6(callback13); ref9 = useRef(0); ref10 = useRef(0); const callback14 = useCallback((a0) => { const r7 = a0.seekableDuration !== 0 ? a0.currentTime / a0.seekableDuration : 0; ref3.current = a0.currentTime; if (a0.currentTime >= ref9.current) { sendVideoProgress(quest, a0.currentTime); handleProgressAnalytics(r7, a0.seekableDuration, a0.currentTime); ref9.current = a0.currentTime + 6 + 2 * Math.random(); } if (a0.currentTime >= ref10.current) { updateOptimisticProgress(quest.id, questTaskDetails.taskType, a0.currentTime); ref10.current = a0.currentTime + 1; } c20965_14(quest.id, a0.currentTime, a0.seekableDuration); sharedValue2.set(r7); const current2 = ref8.current; if (current2 != null) { current2.onProgress(a0.currentTime); } }, [sharedValue2, quest, ref9, ref10, questTaskDetails.taskType, r58, handleProgressAnalytics]); const callback15 = useCallback(() => { sendVideoProgress(quest, state); handleEndAnalytics(); setState2(PlayerState.ENDED); const current2 = ref8.current; if (current2 != null) { current2.onProgress(state); } const current3 = ref8.current; if (current3 != null) { current3.onEnd(); } if (onEnd != null) { onEnd(); } }, [state, quest, handleEndAnalytics, onEnd]); const callback16 = useCallback(() => { setState2(PlayerState.LOADING); handleLoadStartAnalytics(); const current2 = ref8.current; if (current2 != null) { current2.onLoadStart(); } const current3 = ref8.current; if (current3 != null) { current3.onPlay(); } }, [handleLoadStartAnalytics]); const callback17 = useCallback((a0) => { setState2(PlayerState.ERRORED); handleErrorAnalytics(a0); const current2 = ref8.current; if (current2 != null) { current2.onError(a0); } }, [handleErrorAnalytics]); const callback18 = useCallback((a0) => { if (a0 != null && a0.videoTracks != null && a0.videoTracks.length > 0 && a0.selectedVideoTrackId != null && a0.selectedVideoTrackId.length > 0) { const current2 = ref8.current; if (current2 != null) { current2.onVideoTrackChange(a0.selectedVideoTrackId, a0.videoTracks); } } }, []); const callback19 = useCallback((a0) => { if ((a0 == null ? void 0 : a0.nativeEvent?.layout) != null) { const layout = a0.nativeEvent.layout; const { width, height } = layout; if (width > 0 && height > 0) { const current2 = ref8.current; if (current2 != null) { current2.updateVideoDimensions(width, height); } } } }, []); const r320 = useStateFromStores([AppStateStore], () => AppStateStore.getState()) === AppStates.ACTIVE; const memo3 = useMemo(() => { const r1 = memo == null; let r2 = null; if (!r1) { let uri = memo2?.url; if (uri == null) { uri = memo.url; } r2 = { uri }; } return r2; }, [memo2, memo]); useLayoutEffect(() => { if (isAndroid()) { const current = ref.current; return () => { try { if (current != null) { const setNativeProps = current.setNativeProps; if (setNativeProps != null) { setNativeProps.call(current, { paused: true, src: { uri: null } }); } } } catch ($e) { SentryUtils_native.captureException($e); } }; } }, []); const paused = (r320 ? state2 === PlayerState.PAUSED : !r320) || state2 === PlayerState.LOADING || externallyPaused; const handleBufferAnalytics = handleBufferAnalytics2; const ref11 = ref8; const ref12 = useRef(false); let [state6, setState5] = useState(false); callback5 = useCallback((a0) => { setState5(a0); if (a0 !== ref12.current) { ref12.current = a0; handleBufferAnalytics(a0); const current2 = ref11.current; if (current2 != null) { current2.onBuffer(a0); } } }, [handleBufferAnalytics, ref8]); const callback20 = useCallback((a0) => { let isBuffering; L6: { L4: { isBuffering = a0.isBuffering; if (isBuffering) { if (state2 !== PlayerState.LOADING && isIOS()) { break L4; } callback5(true); break L6; } } if (!isBuffering) { callback5(false); } } }, [callback5, state2]); const callback21 = useCallback(() => { if (isIOS()) { callback5(true); } }, [callback5]); const callback22 = useCallback(() => { if (isIOS()) { callback5(false); } }, [callback5]); const safeAreaInsets_native = useSafeAreaInsets_native(); if (memo3 == null) { return null; } const r359 = isFullscreen && safeAreaInsets_native != null && { paddingRight: Math.max(safeAreaInsets_native.right, c9911_15.right), paddingLeft: Math.max(safeAreaInsets_native.left, c9911_15.left) }; const props = { style: [styles.container, style], accessible: false, children: null }; const props2 = { style: [styles.videoContainer], onPress: callback11, accessible: !state4, accessibilityLabel: intl.string(paused ? t.R3aFPe : t.fTMEUi), children: null }; const children = [state2 !== PlayerState.ERRORED && , , , , , ,]; let top = contentInsets?.top; if (top == null) { top = 0; } let bottom = contentInsets?.bottom; if (bottom == null) { bottom = 0; } let left = contentInsets?.left; if (left == null) { left = 0; } let right = contentInsets?.right; if (right == null) { right = 0; } children[1] = ; if (state6) { const style2 = [styles.bufferingSpinner, ,]; if (!isFullscreen && orientation !== "landscape") { let top2 = contentInsets?.top; if (top2 == null) { top2 = 0; } let left2 = contentInsets?.left; if (left2 == null) { left2 = 0; } r420 = { top: top2, left: left2 }; } else { r420 = styles.bufferingSpinnerCentered; } style2[1] = r420; state6 = ; } children[2] = state6; children[3] = state5 ? !state5 : ; const props3 = { style: [styles.controls, animatedStyle], accessible: false, children: null }; let r441 = orientation === "landscape"; let r442 = r441; if (r441) { if (hasCaptionAsset) { hasCaptionAsset = ; } const r469 = [hasCaptionAsset, ,]; if (hasTranscriptAsset) { hasTranscriptAsset = ; } r469[1] = hasTranscriptAsset; r442 = {r469}; } L117: { children2 = [r442, , ,]; props4 = { style: styles.controlsMiddle, children: null }; children3 = [ , , ,]; if (!isVideoEnded && state2 !== PlayerState.ERRORED) { if (paused) { R3aFPe = t.R3aFPe; break L117; } R3aFPe = t.fTMEUi; } else { R3aFPe = t.K0e7M9; } } children3[1] = {!isVideoEnded && state2 !== PlayerState.ERRORED ? paused ? : : } ; children3[2] = ; props4.children = children3; children2[1] = ; children2[2] = r441 ? : r441; props3.children = children2; children[4] = ; if (r441) { r441 = ; } children[5] = r441; props2.children = children; props.children = ; return ; }); exports.PlayerState = PlayerState; export { r159 as VideoQuestPlayer };