// Metro module 16003 (f16004).
import { useContext, useMemo } from "react";
import MediaEngineStore from "../../../../stores/MediaEngineStore";
import { CONTROLS_BUTTON_SIZE_LARGE, CONTROLS_BUTTON_SIZE_NORMAL } from "./VoicePanelControlsConstants";
import { InputModes } from "../../../../Constants";
import { MicButton, PTTButton } from "./buttons/VoicePanelMicButton";
import VoicePanelConnectButton from "./buttons/VoicePanelConnectButton";
import VoicePanelChatButton from "./buttons/VoicePanelChatButton";
import VoicePanelDisconnectCancelButton from "./buttons/VoicePanelDisconnectCancelButton";
import VoicePanelVideoButton from "./buttons/VoicePanelVideoButton";
import VoicePanelSoundboardButton from "./buttons/VoicePanelSoundboardButton";
import VoicePanelScreenshareButton from "./buttons/VoicePanelScreenshareButton";
import VoicePanelDrawerToggleButton from "./buttons/VoicePanelDrawerToggleButton";
import MobileGoLiveEntrypointExperiment, { MobileGoLiveEntrypointTreatment } from "../../../go_live/MobileGoLiveEntrypointExperiment";
import { isMetaQuest } from "../../../device/MetaQuestUtils.android";
import VoicePanelStateContext from "../VoicePanelStateContext";
import useIsConnectedToVoiceChannel from "../hooks/useIsConnectedToVoiceChannel";
import { useStateFromStores } from "../../../../_bundle/Module589";
import { useDerivedValue } from "../../../reanimated/ReanimatedRexport";
import * as _VoicePanelControlsUtils from "../utils/VoicePanelControlsUtils";
import useStateFromSharedValue from "../../../reanimated/native/useStateFromSharedValue";
let __initData;
let c11471_9 = {
mic: (a0, a1) => ,
ptt: (a0, a1) => ,
micConnected: (a0, a1) => ,
connect: (a0, a1) => ,
chat: (a0, a1) => ,
disconnectCancel: (a0, a1) => ,
video: (a0, a1) => ,
soundboard: (a0, a1) => ,
screenshare: (a0, a1) => ,
drawerToggle: (a0, a1) =>
};
__initData = {
code: "function useControlsButtonsTsx1(){const{getControlsDefaultWidth,windowDimensions,safeArea}=this.__closure;return getControlsDefaultWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right);}"
};
export default function useControlsButtons() {
let c22710_5;
const context = useContext(VoicePanelStateContext);
const { channelId, windowDimensions, safeArea } = context;
const isConnectedToVoiceChannel = useIsConnectedToVoiceChannel(channelId);
let c22710_2 = isConnectedToVoiceChannel;
const treatment = MobileGoLiveEntrypointExperiment.useConfig({
location: "VoicePanelControlButtons"
}).treatment;
const stateFromStores = useStateFromStores([MediaEngineStore], () => MediaEngineStore.getMode() === InputModes.PUSH_TO_TALK);
const r36 = () => _VoicePanelControlsUtils.getControlsDefaultWidth(windowDimensions.get().width, safeArea.get().left, safeArea.get().right);
r36.__closure = {
getControlsDefaultWidth: _VoicePanelControlsUtils.getControlsDefaultWidth,
windowDimensions,
safeArea
};
r36.__workletHash = 16456936876254;
r36.__initData = __initData;
const stateFromSharedValue = useStateFromSharedValue(useDerivedValue(r36));
c22710_5 = stateFromSharedValue;
return useMemo(() => {
let c28205_0 = false;
let c28205_1 = 0;
const r36 = (function getButtons(a0, a1, a2) {
const r1 = [];
if (a0) {
r1.push({
type: "icon-normal",
key: "connected-video",
render: c11471_9.video
});
if (!a1) {
r1.push({
type: "icon-normal",
key: "connected-mic",
render: c11471_9.micConnected
});
}
if (a2 === MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_CHAT) {
r1.push({
type: "icon-normal",
key: "connected-screenshare",
render: c11471_9.screenshare
});
} else {
r1.push({
type: "icon-normal",
key: "connected-chat",
render: c11471_9.chat
});
}
if (a1) {
r1.push({
type: "icon-large",
key: "connected-ptt",
render: c11471_9.ptt
});
}
if (a2 === MobileGoLiveEntrypointTreatment.SCREENSHARE_REPLACES_SOUNDBOARD) {
r1.push({
type: "icon-normal",
key: "connected-screenshare",
render: c11471_9.screenshare
});
} else {
r1.push({
type: "icon-normal",
key: "connected-soundboard",
render: c11471_9.soundboard
});
}
r1.push({
type: "icon-normal",
key: "connected-disconnect",
render: c11471_9.disconnectCancel
});
} else {
r1.push({
type: "icon-normal",
key: "disconnected-mute",
render: c11471_9.mic
});
r1.push({
type: "label",
key: "disconnected-connect",
render: c11471_9.connect
});
r1.push({
type: "icon-normal",
key: "disconnected-chat",
render: c11471_9.chat
});
}
if (isMetaQuest()) {
r1.push({
type: "icon-normal",
key: "drawer-toggle",
render: c11471_9.drawerToggle
});
}
return r1;
})(c22710_2, stateFromStores, treatment).map((item) => {
if (item.type === "label") {
c28205_0 = true;
}
let height = CONTROLS_BUTTON_SIZE_NORMAL;
if (item.type === "icon-large") {
c28205_1 = c28205_1 + 1;
height = CONTROLS_BUTTON_SIZE_LARGE;
}
return {
...item,
height,
width: item.type !== "label" ? height : -1,
x: 0,
y: 0
};
});
const r7 = c28205_0 ? 16 : (c22710_5 - c28205_1 * CONTROLS_BUTTON_SIZE_LARGE - (r36.length - c28205_1) * CONTROLS_BUTTON_SIZE_NORMAL - 32) / (r36.length - 1);
let r55 = 16;
for (const item of r36) {
const width = item.width;
let r65 = width;
if (width === -1) {
const width2 = c22710_5 - (32 + (r36.length - 1) * CONTROLS_BUTTON_SIZE_NORMAL + (r36.length - 1) * r7);
r65 = width2;
item.width = width2;
}
const r77 = r55;
const r79 = c22710_5 / 2;
const r80 = r65;
item.x = r77 - r79 + r80 / 2;
r55 = r77 + (r80 + r7);
}
return r36;
}, [isConnectedToVoiceChannel, stateFromStores, stateFromSharedValue, treatment]);
};