337 lines
17 KiB
TypeScript
337 lines
17 KiB
TypeScript
// 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 <AnalyticsLocationProvider value={analyticsLocations}>
|
|
{hasJoined ? <GestureDetector gesture={memo3}>
|
|
<ReanimatedNativeView layout={layout} pointerEvents={state ? "auto" : "none"} style={animatedStyle}>
|
|
<ActivityAccessibilityLayer channelId={channelId} activityName={application?.name} isActivityFocused={state}>
|
|
<EmbeddedActivityView key={key} channel={stateFromStores} layoutMode={layoutMode} />
|
|
</ActivityAccessibilityLayer>
|
|
{stateFromStores3 ? <ActivitiesDebugOverlay /> : null}
|
|
</ReanimatedNativeView>
|
|
</GestureDetector> : activityShelfItemData == null ? <ActivityItemMissingCard activity={stateFromStores2} application={application} /> : <GestureDetector gesture={memo2}>
|
|
<ActivityShelfItem context={memo} guildId={stateFromStores.guild_id} activityItem={activityShelfItemData} locationObject={analyticsContext.location} itemDimensions={itemDimensions} disableBadges />
|
|
</GestureDetector>}
|
|
</AnalyticsLocationProvider>;
|
|
};
|
|
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 <ThemeContextProvider theme={ThemeTypes.DARK}>
|
|
<VoicePanelAnimatedActivityCardInner {...props} />
|
|
</ThemeContextProvider>;
|
|
});
|
|
export default r63;
|