decord/source/modules/media_viewer/native/useVideoControls.tsx

117 lines
4.3 KiB
TypeScript
Raw Normal View History

// Module ID: 8290
// Function ID: 8291
2026-07-20 16:05:17 +00:00
// Name: useVideoControls
// Dependencies: [32, 19, 4566, 21, 560, 1249, 8291, 4574, 504, 8292, 8300, 8293, 8288, 8301, 2]
2026-07-20 16:05:17 +00:00
// 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 */;
2026-07-23 10:11:24 +00:00
const require = globalThis.__r;
2026-07-20 16:05:17 +00:00
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;
2026-07-20 16:05:17 +00:00
if (result) {
2026-07-29 08:29:29 +00:00
result = tmp2(tmp3[11]).supportOverlayVideoControls(portal);
const tmp2Result = tmp2(tmp3[11]);
2026-07-20 16:05:17 +00:00
}
let videoURI = portal.portal;
2026-07-29 08:29:29 +00:00
if (videoURI == null) {
2026-07-20 16:05:17 +00:00
videoURI = portal.videoURI;
}
const tmp11 = require("usePrevious")(videoURI);
2026-08-24 06:08:38 +00:00
closure_7 = tmp11;
const items1 = [controls, videoURI, stateFromStores, tmp11, mediaItemHasSpoiler, tmp9, index];
const effect = obj2.useEffect(() => {
2026-08-24 06:08:38 +00:00
if (closure_5 !== closure_0) {
2026-07-29 08:29:29 +00:00
if (null != tmp) {
2026-07-20 16:05:17 +00:00
if (null != videoURI) {
2026-07-29 08:29:29 +00:00
if (closure_7 !== tmp3) {
controls.seek(0);
let tmp6 = mediaItemHasSpoiler;
if (!mediaItemHasSpoiler) {
2026-07-29 08:29:29 +00:00
tmp6 = stateFromStores;
2026-07-20 16:05:17 +00:00
}
controls.pause(tmp6);
closure_3(tmp6);
2026-07-20 16:05:17 +00:00
}
}
}
}
}, items1);
[][0] = index;
2026-07-20 16:05:17 +00:00
if (result) {
obj4 = { style: tmp.slider, controls, paused: tmp5[0], setPaused: tmp6, onPlayPress: tmp13 };
return videoURI(tmp8(tmp3[13]), obj4, videoURI);
2026-07-20 16:05:17 +00:00
}
const obj3 = require("useMediaItemHasSpoiler");
2026-07-20 16:05:17 +00:00
};
export const useVideoStateStore = obj4;
2026-07-20 16:05:17 +00:00
export const initVideoStateStore = function initVideoStateStore() {
ReactBatchUpdates.batchUpdates(() => {
2026-09-02 09:53:35 +00:00
state.setState({ controls: "PX_16", paused: true });
2026-07-20 16:05:17 +00:00
});
};
export const setMuted = function setMuted(isMuted) {
_require = isMuted;
require("ReactBatchUpdates").batchUpdates(() => {
const useMediaPlayerMutedStore = MediaPlayerMuteManager.useMediaPlayerMutedStore;
useMediaPlayerMutedStore.setState({ isMuted });
2026-07-20 16:05:17 +00:00
});
};
export const toggleMuted = function toggleMuted() {
ReactBatchUpdates.batchUpdates(() => {
const useMediaPlayerMutedStore = require("MediaPlayerMuteManager").useMediaPlayerMutedStore;
2026-07-20 16:05:17 +00:00
useMediaPlayerMutedStore.setState((isMuted) => ({ isMuted: !isMuted.isMuted }));
});
};
export const setVideoStateControls = function setVideoStateControls(videoControls) {
_require = videoControls;
require("ReactBatchUpdates").batchUpdates(() => obj4.setState({ controls }));
2026-07-20 16:05:17 +00:00
};
export const setPausedState = function setPausedState(paused) {
_require = paused;
require("ReactBatchUpdates").batchUpdates(() => obj4.setState({ paused }));
2026-07-20 16:05:17 +00:00
};
export const tryPauseCurrentVideo = function tryPauseCurrentVideo() {
const controls = obj4.getState().controls;
2026-07-29 08:29:29 +00:00
if (controls != null) {
2026-07-20 16:05:17 +00:00
controls.pause(true);
}
};
export const unpauseCurrentVideoIfNeeded = function unpauseCurrentVideoIfNeeded() {
if (!obj4.getState().paused) {
const controls = obj4.getState().controls;
2026-07-29 08:29:29 +00:00
if (controls != null) {
controls.pause(false);
}
2026-07-20 16:05:17 +00:00
}
};