// Metro module 15968 (f15969). import * as Module19 from "react"; import { useState, useContext, useMemo, useEffect, useCallback, useLayoutEffect } from "react"; import EmbeddedActivitiesStore from "../../../activities/EmbeddedActivitiesStore"; import ChannelCallLifecycleStore from "../../../video_calls/native/ChannelCallLifecycleStore"; import ChannelStore from "../../../../stores/ChannelStore"; import { IS_IOS, VoicePanelModes } from "../../VoicePanelConstants"; import { VoicePanelControlsModes } from "../controls/VoicePanelControlsConstants"; import { ThemeTypes } from "../../../../Constants"; import { ACTIVITY_PORTRAIT_ASPECT_RATIO, ActivityLayoutMode, OrientationLockState } from "../../../activities/Constants"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import Module712 from "../../../../_bundle/Module712"; import VoicePanelStateContext from "../VoicePanelStateContext"; import useAnimatedKeyboardHeight from "../../../keyboard/native/useAnimatedKeyboardHeight"; import { useStateFromStores, useStateFromStoresObject } from "../../../../_bundle/Module589"; import { useActivityShelfItemData } from "../../../activities/useActivityShelfItemData"; import { fetchShelf } from "../../../activities/EmbeddedActivitiesActionCreators"; import useGetOrFetchApplications from "../../../applications/useGetOrFetchApplications"; import useCurrentEmbeddedApplication from "../../../activities/utils/useCurrentEmbeddedApplication"; import useAnalyticsLocations, { AnalyticsLocationProvider } from "../../../app_analytics/useAnalyticsLocations"; import AnalyticsLocation from "../../../app_analytics/AnalyticsLocation"; import { useAnalyticsContext } from "../../../../hooks/analytics"; import { isActivityParticipantCurrentUserCurrentSession } from "../../../activities/isActivityParticipantCurrentUserCurrentSession"; import * as _ReanimatedRexport from "../../../reanimated/ReanimatedRexport"; import { useAnimatedReaction, useAnimatedStyle } from "../../../reanimated/ReanimatedRexport"; import { getEmbeddedActivityParticipantId } from "../../../calls/ChannelRTCParticipants"; import { Gesture, GestureDetector } from "../../../../_bundle/Module5273"; import { getWindowDimensions } from "../../../screen/useWindowDimensions.native"; import { getIsTabletActivitySurface } from "../../../activities/native/getDefaultOrientationLockState"; import ReanimatedNativeView from "../../../core/native/ReanimatedNativeView"; import ActivityAccessibilityLayer from "./ActivityAccessibilityLayer"; import EmbeddedActivityView from "../../../activities/native/EmbeddedActivityView"; import ActivitiesDebugOverlay from "../../../activities/native/ActivitiesDebugOverlay"; import ActivityItemMissingCard from "../controls/activities/ActivityItemMissingCard"; import ActivityShelfItem from "../controls/activities/ActivityShelfItem"; import { ThemeContextProvider } from "../../../../_bundle/Module3901"; let useStyles, __initData, __initData2, __initData3, __initData4, __initData5, __initData6, __initData7, __initData8; const VoicePanelAnimatedActivityCardInner = function VoicePanelAnimatedActivityCardInner(props) { let guild_id, c22661_13, gridOrientationLockState, focusedOrientationLockState, c22661_16, callback, state, setState2, embeddedActivityParticipantId, callback2, setState3, callback3, isTabletActivitySurface, backgroundColor; const { applicationId, sharedVisible, layout } = props; guild_id = void 0; c22661_13 = void 0; gridOrientationLockState = void 0; focusedOrientationLockState = void 0; c22661_16 = void 0; callback = void 0; state = void 0; setState2 = void 0; embeddedActivityParticipantId = void 0; callback2 = void 0; setState3 = void 0; callback3 = void 0; isTabletActivitySurface = void 0; backgroundColor = void 0; const styles = useStyles(); const [key, setState] = useState(0); const context = useContext(VoicePanelStateContext); const { channelId, focused, layoutManager, mode, windowDimensions, hideControls, controlsSpecs } = context; const animatedKeyboardHeight = useAnimatedKeyboardHeight(); let c22661_10 = animatedKeyboardHeight; const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId)); const memo = useMemo(() => ({ channel: stateFromStores, type: "channel" }), [stateFromStores]); guild_id = stateFromStores?.guild_id; let r65 = stateFromStores?.guild_id; if (r65 == null) { r65 = null; } const activityShelfItemData = useActivityShelfItemData(r65, applicationId); useEffect(() => { fetchShelf({ guildId: guild_id }); }, [guild_id]); const [application] = useGetOrFetchApplications([applicationId]); c22661_13 = application; const stateFromStoresObject = useStateFromStoresObject([EmbeddedActivitiesStore], () => ({ gridOrientationLockState: EmbeddedActivitiesStore.getGridOrientationLockStateForApp(applicationId), focusedOrientationLockState: EmbeddedActivitiesStore.getOrientationLockStateForApp(applicationId) }), [applicationId]); gridOrientationLockState = stateFromStoresObject.gridOrientationLockState; focusedOrientationLockState = stateFromStoresObject.focusedOrientationLockState; const currentEmbeddedApplication = useCurrentEmbeddedApplication(); const stateFromStores2 = useStateFromStores([EmbeddedActivitiesStore], () => EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(channelId).find((item) => item.applicationId === c22661_13?.id)); const analyticsLocations = useAnalyticsLocations(AnalyticsLocation.ACTIVITY_TILE).analyticsLocations; const analyticsContext = useAnalyticsContext(); let hasJoined = currentEmbeddedApplication != null && currentEmbeddedApplication.id === application?.id; if (!hasJoined) { const r103 = stateFromStores2 == null; let r104 = void 0; if (!r103) { const participants = stateFromStores2.participants; r104 = participants == null ? void 0 : participants.find((participant) => isActivityParticipantCurrentUserCurrentSession(participant)); } hasJoined = r104 != null; } c22661_16 = hasJoined; callback = useCallback(() => { if (c22661_16) { setState((prevState) => prevState + 1); } }, [hasJoined]); const q = () => ({ visible: sharedVisible.get(), mode: mode.get() }); q.__closure = { sharedVisible, mode }; q.__workletHash = 2072430391020; q.__initData = __initData; const r119 = function({ visible, mode: mode2 }, a1) { if (visible === 1 && a1 != null && a1.visible === 0 || mode2 !== VoicePanelModes.PIP && a1?.mode === VoicePanelModes.PIP) { _ReanimatedRexport.runOnJS(callback)(); } }; r119.__closure = { VoicePanelModes, runOnJS: _ReanimatedRexport.runOnJS, incrementActivityKey: callback }; r119.__workletHash = 9732208421749; r119.__initData = __initData2; useAnimatedReaction(q, r119); [state, setState2] = useState(false); embeddedActivityParticipantId = stateFromStores2 != null ? getEmbeddedActivityParticipantId({ applicationId: stateFromStores2.applicationId, instanceId: stateFromStores2.compositeInstanceId }) : null; const de = function de() { return embeddedActivityParticipantId != null && focused.get()?.id === embeddedActivityParticipantId && mode.get() === VoicePanelModes.PANEL; }; de.__closure = { activityParticipantId: embeddedActivityParticipantId, focused, mode, VoicePanelModes }; de.__workletHash = 2833167890519; de.__initData = __initData3; const re = function re(a0, a1) { if (a0 !== a1) { _ReanimatedRexport.runOnJS(setState2)(a0); } }; re.__closure = { runOnJS: _ReanimatedRexport.runOnJS, setIsActivityFocused: setState2 }; re.__workletHash = 12291590020155; re.__initData = __initData4; useAnimatedReaction(de, re); const memo2 = useMemo(() => Gesture.Tap(), []); callback2 = useCallback((a0, a1, a2) => { L11: { if (a2) { if (OrientationLockState.LANDSCAPE === a1) { layoutManager.setTargetAspectRatio(applicationId, "landscape"); } else if (OrientationLockState.PORTRAIT === a1) { layoutManager.setTargetAspectRatio(applicationId, "portrait"); } else { if (OrientationLockState.UNLOCKED !== a1 && a1 !== null) { break L11; } layoutManager.setTargetAspectRatio(applicationId, a0 ? "landscape" : "portrait"); } } else { layoutManager.setTargetAspectRatio(applicationId, "square"); } } }, [layoutManager, applicationId]); useLayoutEffect(() => { const windowDimensions2 = getWindowDimensions(); callback2(windowDimensions2.width > windowDimensions2.height, gridOrientationLockState, c22661_16); }, [callback2, windowDimensions, gridOrientationLockState, hasJoined]); let itemDimensions; [itemDimensions, setState3] = useState(layoutManager.getDefaultTargetDimensions()); callback3 = useCallback(() => { setState3(layoutManager.getDefaultTargetDimensions()); }, [layoutManager, setState3]); const Se = () => windowDimensions.get(); Se.__closure = { windowDimensions }; Se.__workletHash = 12220613662042; Se.__initData = __initData5; const he = function he(a0, a1) { if (a0.landscape !== a1?.landscape) { _ReanimatedRexport.runOnJS(callback2)(a0.landscape, gridOrientationLockState, c22661_16); } _ReanimatedRexport.runOnJS(callback3)(); }; he.__closure = { runOnJS: _ReanimatedRexport.runOnJS, handleTargetAspectRatioParams: callback2, gridOrientationLockState, hasJoined, updateNotJoinedActivityDimensions: callback3 }; he.__workletHash = 13125606009235; he.__initData = __initData6; useAnimatedReaction(Se, he); isTabletActivitySurface = getIsTabletActivitySurface(); backgroundColor = styles.activityContainerBackground.backgroundColor; const fe = function fe() { let paddingHorizontal, paddingVertical; const r8 = IS_IOS ? c22661_10.get() : 0; const landscape = windowDimensions.get().landscape; const width = windowDimensions.get().width; const height = windowDimensions.get().height; let r24 = isTabletActivitySurface; const r10 = (isTabletActivitySurface ? focusedOrientationLockState === OrientationLockState.LANDSCAPE : isTabletActivitySurface) && !landscape; if (isTabletActivitySurface) { r24 = focusedOrientationLockState === OrientationLockState.PORTRAIT; } if (r24) { r24 = landscape; } if (r10) { paddingVertical = (height - width * ACTIVITY_PORTRAIT_ASPECT_RATIO) / 2; paddingHorizontal = 0; } else { paddingHorizontal = 0; paddingVertical = 0; if (r24) { paddingHorizontal = (width - height * ACTIVITY_PORTRAIT_ASPECT_RATIO) / 2; paddingVertical = 0; } } const flex = state ? 0 : 1; let height2 = "auto"; const width2 = state ? width : "auto"; if (state) { height2 = height - r8; } return { flex, backgroundColor, paddingVertical, paddingHorizontal, width: width2, height: height2, maxHeight: "100%", maxWidth: "100%" }; }; fe.__closure = { IS_IOS, animatedKeyboardHeight, windowDimensions, isTabletActivitySurface, focusedOrientationLockState, OrientationLockState, ACTIVITY_PORTRAIT_ASPECT_RATIO, isActivityFocused: state, backgroundColor }; fe.__workletHash = 13392050824169; fe.__initData = __initData7; const animatedStyle = useAnimatedStyle(fe); const stateFromStores3 = useStateFromStores([ChannelCallLifecycleStore], () => ChannelCallLifecycleStore.getShowActivitiesDebugOverlay()); const memo3 = useMemo(() => { const r15 = Gesture.Manual().enabled(state); const t = function t(a0, a1) { a1.fail(); if (controlsSpecs.get().mode !== VoicePanelControlsModes.HIDDEN) { _ReanimatedRexport.runOnJS(hideControls)({ debounce: true }); } }; t.__closure = { controlsSpecs, VoicePanelControlsModes, runOnJS: _ReanimatedRexport.runOnJS, hideControls }; t.__workletHash = 14924492513532; t.__initData = __initData8; return r15.onTouchesDown(t); }, [controlsSpecs, state, hideControls]); if (stateFromStores == null) { return null; } const layoutMode = state ? ActivityLayoutMode.FOCUSED : ActivityLayoutMode.GRID; return {hasJoined ? {stateFromStores3 ? : null} : activityShelfItemData == null ? : } ; }; useStyles = createStyles({ activityContainerBackground: { backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH } }); __initData = { code: "function VoicePanelAnimatedActivityCardTsx1(){const{sharedVisible,mode}=this.__closure;return{visible:sharedVisible.get(),mode:mode.get()};}" }; __initData2 = { code: "function VoicePanelAnimatedActivityCardTsx2({visible:visible,mode:mode},prev){const{VoicePanelModes,runOnJS,incrementActivityKey}=this.__closure;if(visible===1&&prev!=null&&prev.visible===0||mode!==VoicePanelModes.PIP&&(prev===null||prev===void 0?void 0:prev.mode)===VoicePanelModes.PIP){runOnJS(incrementActivityKey)();}}" }; __initData3 = { code: "function VoicePanelAnimatedActivityCardTsx3(){const{activityParticipantId,focused,mode,VoicePanelModes}=this.__closure;var _focused$get;return activityParticipantId!=null&&((_focused$get=focused.get())===null||_focused$get===void 0?void 0:_focused$get.id)===activityParticipantId&&mode.get()===VoicePanelModes.PANEL;}" }; __initData4 = { code: "function VoicePanelAnimatedActivityCardTsx4(isActivityFocused,wasActivityFocused){const{runOnJS,setIsActivityFocused}=this.__closure;if(isActivityFocused!==wasActivityFocused){runOnJS(setIsActivityFocused)(isActivityFocused);}}" }; __initData5 = { code: "function VoicePanelAnimatedActivityCardTsx5(){const{windowDimensions}=this.__closure;return windowDimensions.get();}" }; __initData6 = { code: "function VoicePanelAnimatedActivityCardTsx6(windowDimensionsValue,prevWindowDimensionsValue){const{runOnJS,handleTargetAspectRatioParams,gridOrientationLockState,hasJoined,updateNotJoinedActivityDimensions}=this.__closure;if(windowDimensionsValue.landscape!==(prevWindowDimensionsValue===null||prevWindowDimensionsValue===void 0?void 0:prevWindowDimensionsValue.landscape)){runOnJS(handleTargetAspectRatioParams)(windowDimensionsValue.landscape,gridOrientationLockState,hasJoined);}runOnJS(updateNotJoinedActivityDimensions)();}" }; __initData7 = { code: "function VoicePanelAnimatedActivityCardTsx7(){const{IS_IOS,animatedKeyboardHeight,windowDimensions,isTabletActivitySurface,focusedOrientationLockState,OrientationLockState,ACTIVITY_PORTRAIT_ASPECT_RATIO,isActivityFocused,backgroundColor}=this.__closure;const keyboardHeight=IS_IOS?animatedKeyboardHeight.get():0;const isScreenLandscape=windowDimensions.get().landscape;const screenWidth=windowDimensions.get().width;const screenHeight=windowDimensions.get().height;const shouldLetterBox=isTabletActivitySurface&&focusedOrientationLockState===OrientationLockState.LANDSCAPE&&!isScreenLandscape;const shouldPillarBox=isTabletActivitySurface&&focusedOrientationLockState===OrientationLockState.PORTRAIT&&isScreenLandscape;let containerPaddingVertical=0;let containerPaddingHorizontal=0;if(shouldLetterBox){containerPaddingVertical=(screenHeight-screenWidth*ACTIVITY_PORTRAIT_ASPECT_RATIO)/2;}else if(shouldPillarBox){containerPaddingHorizontal=(screenWidth-screenHeight*ACTIVITY_PORTRAIT_ASPECT_RATIO)/2;}return{flex:isActivityFocused?0:1,backgroundColor:backgroundColor,paddingVertical:containerPaddingVertical,paddingHorizontal:containerPaddingHorizontal,width:isActivityFocused?screenWidth:'auto',height:isActivityFocused?screenHeight-keyboardHeight:'auto',maxHeight:'100%',maxWidth:'100%'};}" }; __initData8 = { code: "function VoicePanelAnimatedActivityCardTsx8(event,manager){const{controlsSpecs,VoicePanelControlsModes,runOnJS,hideControls}=this.__closure;manager.fail();if(controlsSpecs.get().mode!==VoicePanelControlsModes.HIDDEN){runOnJS(hideControls)({debounce:true});}}" }; const r63 = Module19.memo(function VoicePanelAnimatedActivityCard(props) { return ; }); export default r63;