// Module ID: 8290 // Function ID: 8291 // Name: useVideoControls // Dependencies: [32, 19, 4566, 21, 560, 1249, 8291, 4574, 504, 8292, 8300, 8293, 8288, 8301, 2] // Exports: default, initVideoStateStore, setMuted, setPausedState, setVideoStateControls, toggleMuted, tryPauseCurrentVideo, unpauseCurrentVideoIfNeeded // Module 8290 (useVideoControls) import ReactBatchUpdates from "ReactBatchUpdates" /* 1249 */; import useMediaViewerSources from "useMediaViewerSources" /* 8288 */; import MediaPlayerMuteManager from "MediaPlayerMuteManager" /* 8291 */; import _slicedToArray from "module_32" /* 32 */; import noop from "module_19" /* 19 */; import AccessibilityStore from "AccessibilityStore" /* 4566 */; const require = globalThis.__r; require = fn; const jsx = fn(21).jsx; const module_560 = fn(560); let obj4 = module_560.create(() => ({ controls: "PX_16", paused: true })); const createStyles = fn(4574); let closure_8 = createStyles.createStyles({ slider: { marginBottom: 8 } }); const size = fn(2); let result = size.fileFinishedImporting("modules/media_viewer/native/useVideoControls.tsx"); export default function useVideoControls(index, portal, controls) { _require = index; importDefault = controls; const tmp = closure_8(); const tmp2 = _require; const items = [useReducedMotion]; stateFromStores = require("initialize").useStateFromStores(items, () => useReducedMotion.useReducedMotion); const tmp5 = _slicedToArray(mediaItemHasSpoiler.useState(false), 2); _slicedToArray = tmp6; let obj = require("initialize"); const obj2 = mediaItemHasSpoiler; mediaItemHasSpoiler = require("useMediaItemHasSpoiler").useMediaItemHasSpoiler(index); const tmp9 = require("usePrevious")(index); useReducedMotion = tmp9; let result = null != controls; if (result) { result = tmp2(tmp3[11]).supportOverlayVideoControls(portal); const tmp2Result = tmp2(tmp3[11]); } let videoURI = portal.portal; if (videoURI == null) { videoURI = portal.videoURI; } const tmp11 = require("usePrevious")(videoURI); closure_7 = tmp11; const items1 = [controls, videoURI, stateFromStores, tmp11, mediaItemHasSpoiler, tmp9, index]; const effect = obj2.useEffect(() => { if (closure_5 !== closure_0) { if (null != tmp) { if (null != videoURI) { if (closure_7 !== tmp3) { controls.seek(0); let tmp6 = mediaItemHasSpoiler; if (!mediaItemHasSpoiler) { tmp6 = stateFromStores; } controls.pause(tmp6); closure_3(tmp6); } } } } }, items1); [][0] = index; if (result) { obj4 = { style: tmp.slider, controls, paused: tmp5[0], setPaused: tmp6, onPlayPress: tmp13 }; return videoURI(tmp8(tmp3[13]), obj4, videoURI); } const obj3 = require("useMediaItemHasSpoiler"); }; export const useVideoStateStore = obj4; export const initVideoStateStore = function initVideoStateStore() { ReactBatchUpdates.batchUpdates(() => { state.setState({ controls: "PX_16", paused: true }); }); }; export const setMuted = function setMuted(isMuted) { _require = isMuted; require("ReactBatchUpdates").batchUpdates(() => { const useMediaPlayerMutedStore = MediaPlayerMuteManager.useMediaPlayerMutedStore; useMediaPlayerMutedStore.setState({ isMuted }); }); }; export const toggleMuted = function toggleMuted() { ReactBatchUpdates.batchUpdates(() => { const useMediaPlayerMutedStore = require("MediaPlayerMuteManager").useMediaPlayerMutedStore; useMediaPlayerMutedStore.setState((isMuted) => ({ isMuted: !isMuted.isMuted })); }); }; export const setVideoStateControls = function setVideoStateControls(videoControls) { _require = videoControls; require("ReactBatchUpdates").batchUpdates(() => obj4.setState({ controls })); }; export const setPausedState = function setPausedState(paused) { _require = paused; require("ReactBatchUpdates").batchUpdates(() => obj4.setState({ paused })); }; export const tryPauseCurrentVideo = function tryPauseCurrentVideo() { const controls = obj4.getState().controls; if (controls != null) { controls.pause(true); } }; export const unpauseCurrentVideoIfNeeded = function unpauseCurrentVideoIfNeeded() { if (!obj4.getState().paused) { const controls = obj4.getState().controls; if (controls != null) { controls.pause(false); } } };