// Metro module 10691 (f10692).
import { useCallback, useRef, useEffect, useMemo } from "react";
import * as _Module17 from "react-native";
import { StyleSheet, TouchableWithoutFeedback, View } from "react-native";
import ActionSheetStore from "../../../action_sheet/native/ActionSheetStore";
import ChannelRTCStore from "../../../calls/ChannelRTCStore";
import NativeMenuStore from "../../../native_menu/native/NativeMenuStore";
import ChannelStore from "../../../../stores/ChannelStore";
import RTCConnectionStore from "../../../../stores/RTCConnectionStore";
import useVoiceStateForRemoteSession from "../../../game_console/hooks/useVoiceStateForRemoteSession";
import { useStateFromStores } from "../../../../_bundle/Module589";
import { useVoiceChatNavigationContext } from "../../../voice_chat/native/VoiceChatModalContext";
import { navigateToVoiceChannel } from "../../../../utils/native/PrivateChannelCallUtils";
import { intl, t } from "../../../../intl/index.native";
import GlobalStatusContent from "./GlobalStatusContent";
import { useSharedValue } from "../../../reanimated/ReanimatedRexport";
import { useGlobalStatusIndicatorState } from "../useGlobalStatusIndicatorState";
const { NativeEventEmitter, NativeModules } = _Module17;
let c7185_15 = new NativeEventEmitter(NativeModules.DCDStatusBarOverlayViewManager);
const GlobalStatusIndicatorWrapper = (props) => {
let stateFromStores2, openVoice, callback, ref;
const onPress = props.onPress;
stateFromStores2 = void 0;
openVoice = void 0;
callback = void 0;
ref = void 0;
const voiceStateForRemoteSession = useVoiceStateForRemoteSession();
let c18196_1 = voiceStateForRemoteSession;
const stateFromStores = useStateFromStores([RTCConnectionStore], () => {
let r5 = c18196_1?.channelId;
if (r5 == null) {
r5 = RTCConnectionStore.getChannelId();
}
return r5;
}, [voiceStateForRemoteSession]);
stateFromStores2 = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(stateFromStores), [stateFromStores]);
openVoice = useVoiceChatNavigationContext()?.openVoice;
callback = useCallback(() => {
if (stateFromStores2 != null) {
if (openVoice != null && ChannelRTCStore.getChatOpen(stateFromStores2.id)) {
openVoice();
} else {
navigateToVoiceChannel(stateFromStores2, "RTC Panel");
}
if (onPress != null) {
onPress();
}
}
}, [stateFromStores2, onPress, openVoice]);
ref = useRef(callback);
useEffect(() => {
ref.current = callback;
});
useEffect(() => {
let c26795_0 = c7185_15.addListener("StatusBarTapped", () => {
ref.current();
});
return () => {
if (c26795_0 != null) {
c26795_0.remove();
}
};
}, [stateFromStores]);
return
;
};
export default function GlobalStatusIndicator(a0) {
let height, c18197_4, stateFromStores3;
const { children, showWhenParticipantOnScreen = false, forceHide = false } = a0;
let c18197_1 = forceHide;
const onPress2 = a0.onPress;
height = void 0;
c18197_4 = void 0;
stateFromStores3 = void 0;
const globalStatusIndicatorState = useGlobalStatusIndicatorState(showWhenParticipantOnScreen);
const stateFromStores4 = useStateFromStores([ActionSheetStore], () => ActionSheetStore.getContent() != null);
const stateFromStores5 = useStateFromStores([NativeMenuStore], () => NativeMenuStore.isOpen());
height = globalStatusIndicatorState.height;
const r30 = globalStatusIndicatorState.isVisible && !forceHide;
c18197_4 = r30;
stateFromStores3 = stateFromStores4 || stateFromStores5;
return useMemo(() => <>
{children}
{c18197_4 ? : null}
>, [children, stateFromStores3, r30, onPress2, height, forceHide]);
};
export function useGlobalStatusIndicatorHeightSharedValue(a0) {
const sharedValue = useSharedValue(a0.height);
useEffect(() => {
sharedValue.set(a0.height);
}, [a0.height, sharedValue]);
return sharedValue;
}