// Metro module 15367 (f15368). import _slicedToArray from "../../../../_bundle/_slicedToArray"; import { useState, useMemo, useRef, useCallback, useContext } from "react"; import { Pressable, View } from "react-native"; import AccessibilityStore from "../../../a11y/AccessibilityStore"; import ChannelStore from "../../../../stores/ChannelStore"; import RelationshipStore from "../../../../stores/RelationshipStore"; import UserStore from "../../../../stores/UserStore"; import ICYMIStore from "../../ICYMIStore"; import { AnalyticsObjectTypes, AnalyticsObjects, AnalyticsPages } from "../../../../Constants"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import Module712 from "../../../../_bundle/Module712"; import { urlMatchesFileExtension } from "../../../messages/MediaFormatTesters"; import { GIF_RE_IOS } from "../../../../ConstantsIOS"; import { useStateFromStores } from "../../../../_bundle/Module589"; import Video from "../../../../components_native/common/Video"; import ReanimatedRexport, { useAnimatedStyle } from "../../../reanimated/ReanimatedRexport"; import * as _timing from "../../../../design/animation/reanimated/timing/timing"; import { createThumbhashImageFromPlaceholder } from "../../../thumbhash/ThumbhashUtils"; import FastImage from "../../../../components_native/common/FastImage"; import { Text } from "../../../../design/components/Text/native/Text"; import { intl, t } from "../../../../intl/index.native"; import { PlayIcon } from "../../../../design/components/Icon/native/redesign/generated/PlayIcon"; import { isVideo } from "../../../../utils/native/UploadUtils"; import { PressableOpacity } from "../../../../design/void/Pressables/native/Pressables"; import ICYMIActionCreators from "../../ICYMIActionCreators"; import { VoiceXIcon } from "../../../../design/components/Icon/native/redesign/generated/VoiceXIcon"; import { VoiceNormalIcon } from "../../../../design/components/Icon/native/redesign/generated/VoiceNormalIcon"; import { ICYMIContext } from "../ICYMIContext"; import { extractMediaSourcesFromMessage, flattenSource } from "../../../media_viewer/native/MediaSourceUtil"; import { GRAVITY_VALID_EMBED_TYPES } from "../../ICYMITypes"; import { isNotNullish } from "../../../../utils/GlobalUtils"; import { partition } from "../../../../_bundle/Module12"; import { ack } from "../../../../actions/ReadStateActionCreators"; import { openMediaModal } from "../../../media_viewer/native/components/openMediaModal"; import { computeChannelName } from "../../../channel/useChannelName"; let useStyles, __initData, MediaMosaicImage, Media, OneImageRow, ThreeImagesRow, TwoImagesRow, ThreeImages, FourImages, SingleImage, GravityAttachmentMediaMosaic; const MediaMosaicVideo = function MediaMosaicVideo(props) { const { source: source3, height, width: width2, autoplay, style } = props; const styles = useStyles(); let muted = useStateFromStores([ICYMIStore], () => ICYMIStore.videosMuted()); let videoURI = source3.videoURI; if (videoURI == null) { videoURI = source3.sourceURI; } if (videoURI == null) { videoURI = source3.uri; } const props2 = { src: { videoURI }, height, width: width2, postponeRender: false, paused: !autoplay, muted, resizeMode: "cover", style: [styles.media, style], videoStyle: styles.video, disableFocus: null }; if (!muted) { muted = source3.isGIFV; } props2.disableFocus = muted; return