// Metro module 10411 (f10412). import { memo, useState, useRef, useEffect } from "react"; import ChannelStore from "../../stores/ChannelStore"; import MediaEngineStore from "../../stores/MediaEngineStore"; import RTCConnectionStore from "../../stores/RTCConnectionStore"; import { InputModes } from "../../Constants"; import { createStyles } from "../../design/components/Styles/native/createStyles"; import Module712 from "../../_bundle/Module712"; import { hexWithOpacity } from "../../utils/ColorUtils"; import { useStateFromStores } from "../../_bundle/Module589"; import useCanSpeakInChannel from "../../modules/stage_channels/useCanSpeakInChannel"; import { useVoiceChatNavigationContext } from "../../modules/voice_chat/native/VoiceChatModalContext"; import { setPushToTalkState } from "../../modules/media_engine/MediaEngineActionCreators"; import { Gesture, GestureDetector } from "../../_bundle/Module5273"; import * as _ReanimatedRexport from "../../modules/reanimated/ReanimatedRexport"; import ReanimatedRexport from "../../modules/reanimated/ReanimatedRexport"; import { Button } from "../../design/void/native"; import { intl, t } from "../../intl/index.native"; let c6966_10 = { BRAND: "brand", BLUR: "blur" }; const useStyles = createStyles({ button: { margin: 13 }, container: { borderRadius: Module712.radii.xs, overflow: "hidden", backgroundColor: hexWithOpacity(Module712.unsafe_rawColors.WHITE, 0.24) }, buttonBlur: { backgroundColor: "transparent" }, buttonBlurPressed: { backgroundColor: hexWithOpacity(Module712.unsafe_rawColors.BLACK, 0.6) }, textStyle: { fontSize: 16 }, brandButtonContainer: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW } }); const __initData = { code: "function CallPTTButtonTsx1(){const{runOnJS,setDragging}=this.__closure;runOnJS(setDragging)(false);}" }; const __initData2 = { code: "function CallPTTButtonTsx2(){const{runOnJS,setDragging,setPressed,setIsSwipeToChatDisabled}=this.__closure;runOnJS(setDragging)(true);runOnJS(setPressed)(false);if(setIsSwipeToChatDisabled!=null){runOnJS(setIsSwipeToChatDisabled)(false);}}" }; const r73 = memo((a0) => { let style2, style3; let look = a0.look; if (look === void 0) { look = c6966_10.BRAND; } let stateFromStores, state, setState, state2, setState2, ref, setIsSwipeToChatDisabled; const { style, sendCallback, stopCallback } = a0; stateFromStores = void 0; state = void 0; setState = void 0; state2 = void 0; setState2 = void 0; ref = void 0; setIsSwipeToChatDisabled = void 0; const styles = useStyles(); const stateFromStores2 = useStateFromStores([MediaEngineStore], () => MediaEngineStore.getMode()); stateFromStores = useStateFromStores([RTCConnectionStore], () => RTCConnectionStore.getChannelId()); const stateFromStores3 = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(stateFromStores), [stateFromStores]); const canSpeakInChannel = useCanSpeakInChannel(stateFromStores); [state, setState] = useState(false); [state2, setState2] = useState(false); const r57 = (stateFromStores3 == null ? void 0 : stateFromStores3.isGuildStageVoice()) && !canSpeakInChannel; ref = useRef(false); setIsSwipeToChatDisabled = useVoiceChatNavigationContext()?.setIsSwipeToChatDisabled; useEffect(() => { let current = state; if (!state) { current = state2; } if (current !== ref.current) { setPushToTalkState(current); if (current) { if (sendCallback != null) { sendCallback(); } } else if (stopCallback != null) { stopCallback(); } } ref.current = current; }, [ref, state, state2, sendCallback, stopCallback]); const r73 = Gesture.Pan(); const F = function F() { _ReanimatedRexport.runOnJS(setState2)(true); _ReanimatedRexport.runOnJS(setState)(false); if (setIsSwipeToChatDisabled != null) { _ReanimatedRexport.runOnJS(setIsSwipeToChatDisabled)(false); } }; F.__closure = { runOnJS: _ReanimatedRexport.runOnJS, setDragging: setState2, setPressed: setState, setIsSwipeToChatDisabled }; F.__workletHash = 10056118853836; F.__initData = __initData2; const r82 = r73.onStart(F); const N = function N() { _ReanimatedRexport.runOnJS(setState2)(false); }; N.__closure = { runOnJS: _ReanimatedRexport.runOnJS, setDragging: setState2 }; N.__workletHash = 8439106360958; N.__initData = __initData; const gesture = r82.onEnd(N); const r92 = stateFromStores == null; let r93 = null; if (!r92) { const VOICE_ACTIVITY = InputModes.VOICE_ACTIVITY; r93 = null; if (VOICE_ACTIVITY !== stateFromStores2) { r93 = null; if (!r57) { L18: { if (look === c6966_10.BRAND) { const r103 = [styles.brandButtonContainer]; style3 = [styles.button, style]; style2 = r103; } else { style2 = [styles.button, styles.container, style]; if (!state && !state2) { style3 = styles.buttonBlur; break L18; } style3 = styles.buttonBlurPressed; } } r93 =