// Metro module 10539 (f10540).
import { memo } from "react";
import { TouchableOpacity, View } from "react-native";
import EmbeddedActivitiesStore from "../../../activities/EmbeddedActivitiesStore";
import ChannelRTCStore from "../../../calls/ChannelRTCStore";
import AuthenticationStore from "../../../../stores/AuthenticationStore";
import MediaEngineStore from "../../../../stores/MediaEngineStore";
import SelectedChannelStore from "../../../../stores/SelectedChannelStore";
import SpeakingStore from "../../../../stores/SpeakingStore";
import ChannelCallLifecycleStore from "../ChannelCallLifecycleStore";
import { togglePipFocus, useIsVoiceChatFocused } from "../ChannelCallStore";
import { ParticipantTypes } from "../../../calls/CallConstants";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import { generateBoxShadowStyle, EIGHT_DP_ELEVATION_SHADOW_PARAMS, AvatarSizes, Avatar, Icon } from "../../../../design/void/native";
import Module712 from "../../../../_bundle/Module712";
import { useVoiceChatNavigationContext } from "../../../voice_chat/native/VoiceChatModalContext";
import Module12 from "../../../../_bundle/Module12";
import useIsActivityFocused from "../../../activities/useIsActivityFocused";
import isWatchTogetherApplication from "../../../activities/utils/isWatchTogetherApplication";
import { useStateFromStores, useStateFromStoresArray } from "../../../../_bundle/Module589";
import ChannelRTCActionCreators from "../../../../actions/ChannelRTCActionCreators";
import ScreenshareTile from "./ScreenshareTile";
import StreamTile from "./StreamTile";
import { ResizeMode } from "./VideoRenderer";
import participantHasVideo from "../../participantHasVideo";
import UserTile from "./UserTile";
import ActivityTile from "./ActivityTile";
import transitionToActivity_native from "../../../activities/utils/transitionToActivity.native";
import { useLeadingEdgeDebounce } from "../../../../hooks/useLeadingEdgeDebounce";
import { useToken } from "../../../../design/tokens/native/useToken";
import useAvatarColor from "../../../avatar/useAvatarColor";
import Module8346 from "../../../../_bundle/Module8346";
import { useIsViewingActivity } from "../../../activities/native/useIsViewingActivity";
import { useShouldForcePipOrientation } from "./useShouldForcePipOrientation";
import usePipDimensions from "./usePipDimensions";
import useWindowDimensions_native from "../../../screen/useWindowDimensions.native";
import { isAndroid } from "../../../../utils/PlatformUtils";
import { OrientationType } from "../../../device/native/DeviceOrientation";
let useStyles, Component2, Component;
const areParticipantsEqual = function areParticipantsEqual(a0, a1) {
const [, , r6] = a0;
const [, , r36] = a1;
return r6 === r36;
};
useStyles = createStyles({
elevationShadow: generateBoxShadowStyle(EIGHT_DP_ELEVATION_SHADOW_PARAMS),
background: {
backgroundColor: Module712.colors.BLACK,
borderRadius: Module712.radii.sm,
overflow: "hidden"
},
backgroundPipFab: {
backgroundColor: Module712.colors.BLACK,
borderRadius: Module712.radii.lg
},
pip: {
borderRadius: Module712.radii.sm,
overflow: "hidden"
},
pipFab: {
borderRadius: Module712.radii.lg,
overflow: "hidden"
},
avatarContainer: {
width: "100%",
height: "100%",
alignItems: "center",
justifyContent: "center"
},
activityPipContainer: {
flex: 1,
width: "100%"
},
thermalAlertIconContainer: {
width: 22,
height: 22,
backgroundColor: "rgba(78, 80, 88, 0.48)",
borderRadius: 11,
justifyContent: "center",
alignItems: "center",
position: "absolute",
top: 6,
left: 6
},
thermalAlertIcon: {
width: 14,
height: 14,
color: Module712.colors.WHITE
}
});
Component2 = memo(function({ channel, pipParticipant, selfParticipant: selfParticipant2 }) {
let r50, r85;
let r21 = useVoiceChatNavigationContext()?.openVoice;
if (r21 == null) {
r21 = Module12.noop;
}
const noop = r21;
const isVoiceChatFocused = useIsVoiceChatFocused();
let c18119_4 = useIsActivityFocused(channel.id);
const r9 = pipParticipant?.type === ParticipantTypes.ACTIVITY && isWatchTogetherApplication(pipParticipant?.applicationId);
const stateFromStores = useStateFromStores([MediaEngineStore], () => pipParticipant != null && MediaEngineStore.isLocalVideoDisabled(pipParticipant.id), [pipParticipant]);
const type = pipParticipant?.type;
L25: {
const onPipTap = function onPipTap() {
if (isVoiceChatFocused) {
noop();
}
if (c18119_4) {
ChannelRTCActionCreators.selectParticipant(channel.id, null);
} else {
togglePipFocus();
}
};
if (ParticipantTypes.HIDDEN_STREAM !== type && ParticipantTypes.STREAM !== type) {
if (ParticipantTypes.USER === type) {
r50 = participantHasVideo(pipParticipant) ? stateFromStores ? null : : null;
break L25;
}
const ACTIVITY = ParticipantTypes.ACTIVITY;
r50 = null;
if (ACTIVITY !== type) {
break L25;
}
r50 = {
const currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity();
if (currentEmbeddedActivity != null) {
transitionToActivity_native(channel.guild_id, currentEmbeddedActivity.location);
}
if (isVoiceChatFocused) {
noop();
}
}} />;
} else {
if (pipParticipant.user.id === AuthenticationStore.getId()) {
const onScreenshareTap = function onScreenshareTap() {
const voiceChannelId = SelectedChannelStore.getVoiceChannelId();
if (voiceChannelId != null) {
let r14 = pipParticipant?.id;
if (r14 == null) {
r14 = null;
}
ChannelRTCActionCreators.selectParticipant(voiceChannelId, r14);
if (isVoiceChatFocused) {
noop();
}
}
};
r85 = ;
} else {
r85 = ;
}
r50 = r85;
}
}
return <>
{selfParticipant2 == null ? null : r9 ? null : {
if (isVoiceChatFocused) {
noop();
} else {
togglePipFocus();
}
}} />}
{r50}
>;
});
Component = memo(function(a0) {
let r31, r32, channel2, participant, styles;
let id, selfParticipant, leadingEdgeDebounce;
L9: {
channel2 = a0.channel;
const selfParticipant2 = a0.selfParticipant;
styles = useStyles();
[r31, r32] = useStateFromStoresArray([ChannelCallLifecycleStore], () => [ChannelCallLifecycleStore.consumedRequestToRespondToSeriousThermalState(), ChannelCallLifecycleStore.isReactingToThermalState()]);
id = channel2.id;
selfParticipant = selfParticipant2;
leadingEdgeDebounce = void 0;
const stateFromStores = useStateFromStores([ChannelCallLifecycleStore], () => ChannelCallLifecycleStore.isReactingToThermalState());
const [r44, r45] = useStateFromStores([ChannelRTCStore], () => [ChannelRTCStore.getParticipants(id), ChannelRTCStore.getVideoParticipants(id), ChannelRTCStore.getParticipantsVersion(id)], [id], areParticipantsEqual);
leadingEdgeDebounce = useLeadingEdgeDebounce(useStateFromStores([SpeakingStore], () => selfParticipant != null ? SpeakingStore.getSpeakers().find((item) => item !== selfParticipant.user.id && SpeakingStore.isSpeaking(item)) : null, [selfParticipant]), 1000);
if (leadingEdgeDebounce != null) {
const r61 = r44.find((item) => item.id === leadingEdgeDebounce);
if (r61 != null) {
const type = r61.type;
const USER = ParticipantTypes.USER;
participant = r61;
if (type === USER) {
break L9;
}
}
}
const streamId = selfParticipant?.streamId;
participant = selfParticipant;
if (streamId == null) {
participant = selfParticipant;
if (!stateFromStores) {
const r75 = [...r45].sort((a, b) => a.lastSpoke < b.lastSpoke ? 1 : -1)[0];
participant = r75 ?? selfParticipant;
}
}
}
const token = useToken(Module712.unsafe_rawColors.PRIMARY_800);
const avatarColor = useAvatarColor(participant == null ? void 0 : participant.user.getAvatarURL(channel2.guild_id, 80), token);
if (participant == null) {
return null;
}
return
{participant.streamId != null && participant.voiceState?.selfVideo && !r32 ? : }
{r31 ?
: null}
;
});
const r104 = memo(function({ channel: channel2, pipParticipant: pipParticipant2, selfParticipant: selfParticipant2 }) {
const styles = useStyles();
const isViewingActivity = useIsViewingActivity({
channelId: channel2.id
});
const shouldForcePipOrientation = useShouldForcePipOrientation({
channel: channel2
});
const pipDimensions = usePipDimensions({
channelId: channel2.id,
forcedOrientation: shouldForcePipOrientation
});
const windowDimensions_native = useWindowDimensions_native();
const { width, height } = windowDimensions_native;
return
height ? "row" : shouldForcePipOrientation === OrientationType.LANDSCAPE ? "row" : "column"
}, pipDimensions]}>
{isViewingActivity ?
: }
;
});
export default r104;
export { areParticipantsEqual };