// 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;