928 lines
47 KiB
TypeScript
928 lines
47 KiB
TypeScript
// Metro module 15991 (f15992).
|
|
import * as Module19 from "react";
|
|
import { useMemo, useLayoutEffect, useRef, useContext, useEffect, useState, useCallback, useId } from "react";
|
|
import { View, StyleSheet } from "react-native";
|
|
import ChannelRTCStore from "../../../calls/ChannelRTCStore";
|
|
import { BORDER_RADIUS_PHYSICS, MODE_CHANGE_PHYSICS, PANEL_CONTROLS_HEIGHT_PHYSICS, UI_SHOW_HIDE_PHYSICS, VoicePanelModes } from "../../VoicePanelConstants";
|
|
import { CALL_TILE_GUTTER, EDGE_GUTTER } from "../card/VoicePanelCardConstants";
|
|
import { CONTROLS_DRAWER_HEADER_EXPANDED_SIZE, VoicePanelControlsModes } from "./VoicePanelControlsConstants";
|
|
import { ComponentActions, ThemeTypes } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { isMetaQuest } from "../../../device/MetaQuestUtils.android";
|
|
import useDrawerToggle from "./useDrawerToggle";
|
|
import { ActionSheetDragHandle } from "../../../../design/components/experimental/native";
|
|
import VoicePanelStateContext from "../VoicePanelStateContext";
|
|
import * as _ReanimatedRexport from "../../../reanimated/ReanimatedRexport";
|
|
import { useAnimatedStyle, LayoutAnimationConfig, useSharedValue, useAnimatedProps, useAnimatedReaction } from "../../../reanimated/ReanimatedRexport";
|
|
import { createUseAnimatedScrollLock, ControlsGestureScrollLock } from "./utils/createUseAnimatedScrollLock";
|
|
import useControlsLock from "./useControlsLock";
|
|
import { useToken } from "../../../../design/tokens/native/useToken";
|
|
import * as _Module5273 from "../../../../_bundle/Module5273";
|
|
import { Gesture, GestureDetector } from "../../../../_bundle/Module5273";
|
|
import * as _trackVoicePanelTabOpened from "./trackVoicePanelTabOpened";
|
|
import trackVoicePanelTabOpened from "./trackVoicePanelTabOpened";
|
|
import calculateVoicePanelHeaderSpecs from "../header/calculateVoicePanelHeaderSpecs";
|
|
import * as _VoicePanelControlsUtils from "../utils/VoicePanelControlsUtils";
|
|
import * as _HapticUtils_native from "../../../haptics/HapticUtils.native";
|
|
import { useIsScreenReaderEnabled } from "../../../a11y/native/useIsScreenReaderEnabled.native";
|
|
import useWindowDimensionsSharedValue_native from "../../../screen/useWindowDimensionsSharedValue.native";
|
|
import * as _cheapWorkletShallowEqual from "../../../reanimated/native/cheapWorkletShallowEqual";
|
|
import * as _VoicePanelControlUtils from "./utils/VoicePanelControlUtils";
|
|
import { useShouldShowFloatingCTA } from "./utils/VoicePanelFloatingCTAUtils";
|
|
import useConsoleConnectingInfo from "../hooks/useConsoleConnectingInfo";
|
|
import { TransitionItem } from "../../../../design/components/TransitionGroup/TransitionGroup";
|
|
import { renderVoicePanelFloatingCTA } from "./VoicePanelFloatingCTAContainer";
|
|
import { renderVoicePanelConsoleStatus } from "./VoicePanelConsoleStatus";
|
|
import useRefValue from "../../../../hooks/useRefValue";
|
|
import useControlsButtons from "./useControlsButtons";
|
|
import * as _spring from "../../../../design/animation/reanimated/spring/spring";
|
|
import ReanimatedNativeView from "../../../core/native/ReanimatedNativeView";
|
|
import MobileVisualRefreshExperiment from "../../../themes/experiments/MobileVisualRefreshExperiment";
|
|
import useIsConnectedToVoiceChannel from "../hooks/useIsConnectedToVoiceChannel";
|
|
import { useMaybeFetchSoundboardSounds } from "../../../soundboard/native/SoundboardHooks";
|
|
import { batchUpdates } from "../../../../_bundle/Module705";
|
|
import useControlAccessoryHeight from "../hooks/useControlAccessoryHeight";
|
|
import { ComponentDispatch } from "../../../../utils/ComponentDispatchUtils";
|
|
import { getSafeAreaInsets } from "../../../safe_area/useSafeAreaInsets.native";
|
|
import { getWindowDimensions } from "../../../screen/useWindowDimensions.native";
|
|
import roundToNearestPixel from "../utils/roundToNearestPixel";
|
|
import VoicePanelControlsDimOverlay from "./VoicePanelControlsDimOverlay";
|
|
import VoicePanelAccessibilityView from "../VoicePanelAccessibilityView";
|
|
import { ThemeContextProvider } from "../../../../_bundle/Module3901";
|
|
import { VoicePanelVisualEffectView } from "../shared/VoicePanelVisualEffectView";
|
|
import { isAndroid } from "../../../../utils/PlatformUtils";
|
|
import VoicePanelControlsDrawer from "./VoicePanelControlsDrawer";
|
|
let __initData, __initData2, __initData3, __initData4, __initData5, __initData6, __initData7, __initData8, __initData9, __initData10, __initData11, Component, __initData12, VoicePanelButtonsInner, __initData13, __initData14, __initData15, __initData16, __initData17, __initData18;
|
|
const useStyles = createStyles({
|
|
accessibilityWrapper: {
|
|
...StyleSheet.absoluteFillObject,
|
|
zIndex: 1
|
|
},
|
|
wrapper: {
|
|
position: "absolute",
|
|
bottom: 0,
|
|
left: "50%",
|
|
overflow: "hidden",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
borderRadius: Module712.modules.mobile.VOICE_PANEL_CONTROLS_BORDER_RADIUS
|
|
},
|
|
buttonsWrapper: {
|
|
position: "absolute",
|
|
left: 0,
|
|
right: 0,
|
|
zIndex: 20,
|
|
flexDirection: "row",
|
|
justifyContent: "space-between",
|
|
alignItems: "center",
|
|
marginHorizontal: Module712.space.PX_16
|
|
},
|
|
actionSheetDragHandleWrapper: {
|
|
position: "absolute",
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
zIndex: 21
|
|
}
|
|
});
|
|
const TRANSITIONAL_HEIGHT = 200;
|
|
const interFloatingTransitionHeight = 200;
|
|
const SCROLL_BEGIN_GRACE_TICKS = isMetaQuest() ? 15 : 5;
|
|
let Component2 = Module19.memo(function({ openTab: openTab2 }) {
|
|
const styles = useStyles();
|
|
const drawerToggle = useDrawerToggle(openTab2);
|
|
return <View style={styles.actionSheetDragHandleWrapper}>
|
|
<ActionSheetDragHandle onPress={drawerToggle.handlePress} overlay accessibilityLabel={drawerToggle.accessibilityLabel} aria-hidden={drawerToggle.ariaHidden} />
|
|
</View>;
|
|
});
|
|
__initData = {
|
|
code: "function VoicePanelControlsTsx1(){const{scrollLock,isDragScrolling,runOnJS,gestureLock}=this.__closure;scrollLock.set(false);isDragScrolling.set(false);runOnJS(gestureLock.unlock)();}"
|
|
};
|
|
__initData2 = {
|
|
code: "function VoicePanelControlsTsx2({velocityY:velocityY}){const{wrapperSpecs,wrapperDimensions,calculateVoicePanelHeaderSpecs,safeArea,edgeGutter,controlsSpecs,VoicePanelControlsModes,gestureSpecs,scrollLock,isDragScrolling,runOnJS,gestureLock}=this.__closure;const absoluteVelocity=Math.abs(velocityY);let resultingControlMode;if(absoluteVelocity>200&&velocityY<0){wrapperSpecs.set({...wrapperSpecs.get(),height:wrapperDimensions.get().drawerHeight-calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter).height});if(controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER){resultingControlMode=VoicePanelControlsModes.RESET;}else{resultingControlMode=VoicePanelControlsModes.DRAWER;}}else if(absoluteVelocity<200&&gestureSpecs.get().isDrawer){if(controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER){resultingControlMode=VoicePanelControlsModes.RESET;}else{resultingControlMode=VoicePanelControlsModes.DRAWER;}}else{if(controlsSpecs.get().mode===VoicePanelControlsModes.FLOATING_DEFAULT){resultingControlMode=VoicePanelControlsModes.RESET;}else{resultingControlMode=VoicePanelControlsModes.FLOATING_DEFAULT;}}scrollLock.set(false);isDragScrolling.set(false);runOnJS(gestureLock.unlock)(resultingControlMode);}"
|
|
};
|
|
__initData3 = {
|
|
code: "function VoicePanelControlsTsx3(){const{scrollLock,isDragScrolling,gestureSpecs,runOnJS,gestureLock}=this.__closure;console.log('ZZZZZ - ControlsGesture.onTouchesCancelled');scrollLock.set(false);isDragScrolling.set(false);gestureSpecs.set({...gestureSpecs.get(),active:false});runOnJS(gestureLock.unlock)();}"
|
|
};
|
|
__initData4 = {
|
|
code: "function VoicePanelControlsTsx4(event){const{gestureSpecs,calculateVoicePanelHeaderSpecs,safeArea,edgeGutter,wrapperSpecs,getControlsDrawerOpenWidth,windowDimensions,wrapperDimensions,controlsSpecs,runOnJS,triggerHapticFeedback,HapticFeedbackTypes,getControlsDefaultWidth}=this.__closure;const change=event.absoluteY-gestureSpecs.get().absoluteY;const newHeight=gestureSpecs.get().height-gestureSpecs.get().y-change;if(newHeight>gestureSpecs.get().drawerTransitionHeight){if(!gestureSpecs.get().isDrawer){gestureSpecs.set({...gestureSpecs.get(),isDrawer:true});}const headerHeight=calculateVoicePanelHeaderSpecs(safeArea.get(),edgeGutter).height;wrapperSpecs.set({...wrapperSpecs.get(),x:0,y:0,width:getControlsDrawerOpenWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right),height:Math.min(newHeight,wrapperDimensions.get().drawerHeight-headerHeight),drawerMode:true});}else{const progress=newHeight/gestureSpecs.get().drawerTransitionHeight;const floatingHeight=controlsSpecs.get().height;const yOffset=Math.max(newHeight-safeArea.get().bottom-floatingHeight,0)*-1;const newChange=yOffset*(1-progress/1.5);if(gestureSpecs.get().isDrawer){gestureSpecs.set({...gestureSpecs.get(),isDrawer:false});}if(floatingHeight!==wrapperSpecs.get().height&&!wrapperSpecs.get().drawerMode){runOnJS(triggerHapticFeedback)(HapticFeedbackTypes.IMPACT_MEDIUM);}wrapperSpecs.set({...wrapperSpecs.get(),x:0,y:safeArea.get().bottom*-1+newChange,width:getControlsDefaultWidth(windowDimensions.get().width,safeArea.get().left,safeArea.get().right),height:floatingHeight,drawerMode:false});}}"
|
|
};
|
|
__initData5 = {
|
|
code: "function VoicePanelControlsTsx5(event,manager){const{State,gestureSpecs,controlsSpecs,VoicePanelControlsModes,touchMoveCount,SCROLL_BEGIN_GRACE_TICKS,isDragScrolling,sharedTab,scrollOffsetValue,GESTURE_VERTICAL_MINIMUM,wrapperSpecs,TRANSITIONAL_HEIGHT,INTER_FLOATING_TRANSITIONAL_HEIGHT,tab,runOnJS,openTab,VoicePanelTabAnalyticsSources,scrollLock}=this.__closure;if(event.state!==State.BEGAN||gestureSpecs.get().active)return;if(controlsSpecs.get().mode===VoicePanelControlsModes.HIDDEN){manager.fail();return;}touchMoveCount.set(touchMoveCount.get()+1);const isDragging=touchMoveCount.get()<=SCROLL_BEGIN_GRACE_TICKS?true:isDragScrolling.get();const scrollOffset=function(){switch(sharedTab.get()){case'settings':case'app_launcher':return scrollOffsetValue.get();default:return 0;}}();const{absoluteY:absoluteY,absoluteX:absoluteX}=event.changedTouches[0];const computed=gestureSpecs.get().absoluteY-absoluteY;if(controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER&&isDragging&&(computed>=0||scrollOffset>0)){return;}if(controlsSpecs.get().mode===VoicePanelControlsModes.FLOATING_DEFAULT&&computed>GESTURE_VERTICAL_MINIMUM||controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER&&(computed<-GESTURE_VERTICAL_MINIMUM||computed>GESTURE_VERTICAL_MINIMUM)){gestureSpecs.set({absoluteX:absoluteX,absoluteY:absoluteY,x:wrapperSpecs.get().x,y:wrapperSpecs.get().y,height:wrapperSpecs.get().height,isDrawer:controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER,active:true,drawerTransitionHeight:TRANSITIONAL_HEIGHT,interFloatingTransitionHeight:INTER_FLOATING_TRANSITIONAL_HEIGHT});if(controlsSpecs.get().mode!==VoicePanelControlsModes.DRAWER&&tab!=='settings'){runOnJS(openTab)({tab:'settings',source:VoicePanelTabAnalyticsSources.GESTURE,disableControlsUpdate:true});}scrollLock.set(true);manager.activate();}else if(Math.abs(computed)>Math.abs(GESTURE_VERTICAL_MINIMUM)){manager.fail();}}"
|
|
};
|
|
__initData6 = {
|
|
code: "function VoicePanelControlsTsx6(){const{runOnJS,gestureLock}=this.__closure;runOnJS(gestureLock.lock)();}"
|
|
};
|
|
__initData7 = {
|
|
code: "function VoicePanelControlsTsx7(event){const{touchMoveCount,gestureSpecs,wrapperSpecs,controlsSpecs,VoicePanelControlsModes,TRANSITIONAL_HEIGHT,INTER_FLOATING_TRANSITIONAL_HEIGHT}=this.__closure;touchMoveCount.set(0);gestureSpecs.set({absoluteX:event.changedTouches[0].absoluteX,absoluteY:event.changedTouches[0].absoluteY,x:wrapperSpecs.get().x,y:wrapperSpecs.get().y,height:wrapperSpecs.get().height,isDrawer:controlsSpecs.get().mode===VoicePanelControlsModes.DRAWER,active:false,drawerTransitionHeight:TRANSITIONAL_HEIGHT,interFloatingTransitionHeight:INTER_FLOATING_TRANSITIONAL_HEIGHT});}"
|
|
};
|
|
__initData8 = {
|
|
code: "function VoicePanelControlsTsx8(){const{wrapperSpecs}=this.__closure;return wrapperSpecs.get().drawerMode;}"
|
|
};
|
|
__initData9 = {
|
|
code: "function VoicePanelControlsTsx9(current,previous){const{runOnJS,triggerHapticFeedback,HapticFeedbackTypes}=this.__closure;if(current===previous)return;runOnJS(triggerHapticFeedback)(HapticFeedbackTypes.IMPACT_MEDIUM);}"
|
|
};
|
|
__initData10 = {
|
|
code: "function VoicePanelControlsTsx10(){const{connected,controlsSpecs,mode,windowDimensions,windowDimensionsIgnoringKeyboard,safeArea}=this.__closure;return{connected:connected.get(),currentControlsMode:controlsSpecs.get().mode,mode:mode.get(),windowWidth:windowDimensions.get().width,windowHeight:windowDimensions.get().height,windowHeightIgnoringKeyboard:windowDimensionsIgnoringKeyboard.get().height,controlsHeightValue:controlsSpecs.get().height,safeArea:safeArea.get()};}"
|
|
};
|
|
__initData11 = {
|
|
code: "function VoicePanelControlsTsx11(props,previous){const{cheapWorkletShallowEqual,VoicePanelModes,wrapperSpecs,VoicePanelControlsModes,runOnJS,setControlsMode,isScreenReaderEnabled,EDGE_GUTTER,getControlsDefaultWidth,getDrawerSpec,getControlsDrawerOpenWidth}=this.__closure;var _previous$currentCont;if(cheapWorkletShallowEqual(props,previous!==null&&previous!==void 0?previous:undefined))return;const{currentControlsMode:currentControlsMode,mode:mode,windowWidth:windowWidth,windowHeightIgnoringKeyboard:windowHeightIgnoringKeyboard,controlsHeightValue:controlsHeightValue,safeArea:safeArea}=props;switch(mode){case VoicePanelModes.DISMISSED:case VoicePanelModes.PIP:if(!wrapperSpecs.get().hidden){wrapperSpecs.set({...wrapperSpecs.get(),hidden:true});}return;case VoicePanelModes.PANEL:default:break;}switch(currentControlsMode){case VoicePanelControlsModes.RESET:runOnJS(setControlsMode)({mode:(_previous$currentCont=previous===null||previous===void 0?void 0:previous.currentControlsMode)!==null&&_previous$currentCont!==void 0?_previous$currentCont:VoicePanelControlsModes.FLOATING_DEFAULT});return;case VoicePanelControlsModes.HIDDEN:if(isScreenReaderEnabled){wrapperSpecs.set({...wrapperSpecs.get(),hidden:false});break;}if(!wrapperSpecs.get().hidden){wrapperSpecs.set({...wrapperSpecs.get(),hidden:true});}break;case VoicePanelControlsModes.FLOATING_DEFAULT:wrapperSpecs.set({x:0,y:Math.max(safeArea.bottom,EDGE_GUTTER)*-1,width:getControlsDefaultWidth(windowWidth,safeArea.left,safeArea.right),height:controlsHeightValue,drawerMode:false,hidden:false});break;case VoicePanelControlsModes.DRAWER:const{minHeight:minHeight,maxHeight:maxHeight}=getDrawerSpec(windowHeightIgnoringKeyboard,safeArea.top);const heightMidpoint=(maxHeight+minHeight)/2;let height;if(wrapperSpecs.get().height<=controlsHeightValue){height=maxHeight;}else if(previous!=null&&wrapperSpecs.get().height===getDrawerSpec(previous.windowHeight,previous.safeArea.top).maxHeight){height=maxHeight;}else if(wrapperSpecs.get().height>=heightMidpoint){height=maxHeight;}else{height=minHeight;}wrapperSpecs.set({x:0,y:0,width:getControlsDrawerOpenWidth(windowWidth,safeArea.left,safeArea.right),height:height,drawerMode:true,hidden:false});break;}}"
|
|
};
|
|
Component = Module19.memo(function({ channelId: channelId2, wrapperSpecs, controlsSpecs, accessoryHeights, gestureState }) {
|
|
const shouldShowFloatingCTA = useShouldShowFloatingCTA(channelId2);
|
|
const controlsLock = useControlsLock();
|
|
let c22699_4 = controlsLock;
|
|
const consoleConnectingInfo = useConsoleConnectingInfo(channelId2);
|
|
const { isConnectingToConsole, isConnectingOrConnectedToConsole } = consoleConnectingInfo;
|
|
const memo = useMemo(() => ({
|
|
wrapperSpecs,
|
|
controlsSpecs,
|
|
accessoryHeights,
|
|
gestureState
|
|
}), [wrapperSpecs, controlsSpecs, accessoryHeights, gestureState]);
|
|
useLayoutEffect(() => {
|
|
if (isConnectingToConsole) {
|
|
c22699_4.lock();
|
|
} else {
|
|
c22699_4.unlock();
|
|
}
|
|
}, [isConnectingToConsole, controlsLock]);
|
|
return <>
|
|
{[<TransitionItem item={shouldShowFloatingCTA ? memo : void 0} renderItem={renderVoicePanelFloatingCTA} />, <TransitionItem item={isConnectingOrConnectedToConsole ? memo : void 0} renderItem={renderVoicePanelConsoleStatus} />]}
|
|
</>;
|
|
});
|
|
__initData12 = {
|
|
code: "function VoicePanelControlsTsx12(){const{controlsSpecs,connected,sharedTab,wrapperSpecs,TRANSITIONAL_HEIGHT,CONTROLS_DRAWER_HEADER_EXPANDED_SIZE,withSpring,MODE_CHANGE_PHYSICS}=this.__closure;const showPushToTalkText=controlsSpecs.get().pushToTalk&&connected.get();const height=sharedTab.get()==='settings'&&wrapperSpecs.get().height>=TRANSITIONAL_HEIGHT?CONTROLS_DRAWER_HEADER_EXPANDED_SIZE:controlsSpecs.get().height;const translateY=function(){return sharedTab.get()!=='settings'&&wrapperSpecs.get().height>=TRANSITIONAL_HEIGHT?-controlsSpecs.get().height:0;}();return{top:showPushToTalkText?-4:0,height:withSpring(height,MODE_CHANGE_PHYSICS),opacity:withSpring(sharedTab.get()!=='settings'&&wrapperSpecs.get().height>=TRANSITIONAL_HEIGHT?0:1,MODE_CHANGE_PHYSICS),transform:[{translateY:withSpring(translateY,MODE_CHANGE_PHYSICS)},{scale:withSpring(sharedTab.get()!=='settings'&&wrapperSpecs.get().height>=TRANSITIONAL_HEIGHT?0.95:1,MODE_CHANGE_PHYSICS)}]};}"
|
|
};
|
|
VoicePanelButtonsInner = Module19.memo(function VoicePanelButtonsInner(props) {
|
|
const { openTab, wrapperSpecs: wrapperSpecs2, sharedTab } = props;
|
|
const ref = useRef(true);
|
|
const refValue = useRefValue(ref);
|
|
const styles = useStyles();
|
|
const context = useContext(VoicePanelStateContext);
|
|
const { controlsSpecs: controlsSpecs2, connected } = context;
|
|
const controlsButtons = useControlsButtons();
|
|
const c = function c() {
|
|
const r19 = controlsSpecs2.get().pushToTalk && connected.get();
|
|
const r15 = sharedTab.get() === "settings" && wrapperSpecs2.get().height >= TRANSITIONAL_HEIGHT ? CONTROLS_DRAWER_HEADER_EXPANDED_SIZE : controlsSpecs2.get().height;
|
|
const r16 = sharedTab.get() !== "settings" ? wrapperSpecs2.get().height >= TRANSITIONAL_HEIGHT ? -controlsSpecs2.get().height : 0 : 0;
|
|
return {
|
|
top: r19 ? -4 : 0,
|
|
height: _spring.withSpring(r15, MODE_CHANGE_PHYSICS),
|
|
opacity: _spring.withSpring(sharedTab.get() !== "settings" ? wrapperSpecs2.get().height >= TRANSITIONAL_HEIGHT ? 0 : 1 : 1, MODE_CHANGE_PHYSICS),
|
|
transform: [{
|
|
translateY: _spring.withSpring(r16, MODE_CHANGE_PHYSICS)
|
|
}, {
|
|
scale: _spring.withSpring(sharedTab.get() !== "settings" ? wrapperSpecs2.get().height >= TRANSITIONAL_HEIGHT ? 0.95 : 1 : 1, MODE_CHANGE_PHYSICS)
|
|
}]
|
|
};
|
|
};
|
|
c.__closure = {
|
|
controlsSpecs: controlsSpecs2,
|
|
connected,
|
|
sharedTab,
|
|
wrapperSpecs: wrapperSpecs2,
|
|
TRANSITIONAL_HEIGHT,
|
|
CONTROLS_DRAWER_HEADER_EXPANDED_SIZE,
|
|
withSpring: _spring.withSpring,
|
|
MODE_CHANGE_PHYSICS
|
|
};
|
|
c.__workletHash = 17578996123721;
|
|
c.__initData = __initData12;
|
|
const animatedStyle = useAnimatedStyle(c);
|
|
useEffect(() => {
|
|
ref.current = false;
|
|
}, []);
|
|
return <LayoutAnimationConfig skipEntering={refValue}>
|
|
<ReanimatedNativeView style={[styles.buttonsWrapper, animatedStyle]}>
|
|
{controlsButtons.map((controlsButton) => controlsButton.render(controlsButton.key, {
|
|
props: controlsButton,
|
|
openTab,
|
|
wrapperSpecs: wrapperSpecs2
|
|
}))}
|
|
</ReanimatedNativeView>
|
|
</LayoutAnimationConfig>;
|
|
});
|
|
__initData13 = {
|
|
code: "function VoicePanelControlsTsx13(){const{withSpring,wrapperSpecs,borderRadius,BORDER_RADIUS_PHYSICS,PANEL_CONTROLS_HEIGHT_PHYSICS,MODE_CHANGE_PHYSICS,roundToNearestPixel,UI_SHOW_HIDE_PHYSICS,useReducedMotion,gestureState,CALL_TILE_GUTTER,accessoryHeights}=this.__closure;return{borderBottomRightRadius:withSpring(!wrapperSpecs.get().drawerMode?borderRadius:0,BORDER_RADIUS_PHYSICS),borderBottomLeftRadius:withSpring(!wrapperSpecs.get().drawerMode?borderRadius:0,BORDER_RADIUS_PHYSICS),height:withSpring(wrapperSpecs.get().height,PANEL_CONTROLS_HEIGHT_PHYSICS),width:withSpring(wrapperSpecs.get().width,MODE_CHANGE_PHYSICS),marginLeft:withSpring(roundToNearestPixel(wrapperSpecs.get().width/2)*-1,MODE_CHANGE_PHYSICS),opacity:withSpring(wrapperSpecs.get().hidden?0:1,MODE_CHANGE_PHYSICS),transform:[{translateX:withSpring(wrapperSpecs.get().x,UI_SHOW_HIDE_PHYSICS)},{translateY:withSpring(!useReducedMotion.get()&&(wrapperSpecs.get().hidden||gestureState.get().active&&!gestureState.get().requiresPop)?wrapperSpecs.get().height+CALL_TILE_GUTTER+accessoryHeights.get():wrapperSpecs.get().y,UI_SHOW_HIDE_PHYSICS)}]};}"
|
|
};
|
|
__initData14 = {
|
|
code: "function VoicePanelControlsTsx14(){const{mode,VoicePanelModes,wrapperSpecs}=this.__closure;return{pointerEvents:mode.get()!==VoicePanelModes.PANEL||wrapperSpecs.get().hidden?'none':'auto'};}"
|
|
};
|
|
__initData15 = {
|
|
code: "function VoicePanelControlsTsx15(){const{controlsSpecs}=this.__closure;return controlsSpecs.get().mode;}"
|
|
};
|
|
__initData16 = {
|
|
code: "function VoicePanelControlsTsx16(mode,previousMode){const{isScreenReaderEnabled,VoicePanelControlsModes,runOnJS,setIsDrawer}=this.__closure;if(mode===previousMode||!isScreenReaderEnabled)return;if(mode===VoicePanelControlsModes.DRAWER&&previousMode!==VoicePanelControlsModes.DRAWER){runOnJS(setIsDrawer)(true);}else if(mode!==VoicePanelControlsModes.DRAWER&&previousMode===VoicePanelControlsModes.DRAWER){runOnJS(setIsDrawer)(false);}}"
|
|
};
|
|
__initData17 = {
|
|
code: "function VoicePanelControlsTsx17(){const{wrapperSpecs}=this.__closure;return wrapperSpecs.get().drawerMode;}"
|
|
};
|
|
__initData18 = {
|
|
code: "function VoicePanelControlsTsx18(drawerMode,previousDrawerMode){const{isRefreshEnabled,runOnJS,setIsDrawerActive}=this.__closure;if(drawerMode===previousDrawerMode)return;if(!isRefreshEnabled)return;if(drawerMode){runOnJS(setIsDrawerActive)(true);}else{runOnJS(setIsDrawerActive)(false);}}"
|
|
};
|
|
const r106 = Module19.memo(function VoicePanelControls(props) {
|
|
let callback, c22701_12, sharedValue2, token, setState2, setState3;
|
|
let state2, sharedValue3, sharedValue4, callback2, controlsSpecs4, windowDimensions, wrapperDimensions, safeArea, sharedValue5, sharedValue6, sharedValue7, sharedValue8, ref2, sharedValue9, gestureLock, token2;
|
|
let sharedValue10, isScreenReaderEnabled2, c22703_2, controlsSpecs5, windowDimensions2, mode2, setControlsMode2, safeArea2, connected2;
|
|
const gestureState2 = props.gestureState;
|
|
callback = void 0;
|
|
c22701_12 = void 0;
|
|
sharedValue2 = void 0;
|
|
token = void 0;
|
|
setState2 = void 0;
|
|
setState3 = void 0;
|
|
const isScreenReaderEnabled = useIsScreenReaderEnabled();
|
|
const isRefreshEnabled = MobileVisualRefreshExperiment("VoicePanelControls");
|
|
let c22701_2 = isRefreshEnabled;
|
|
const context = useContext(VoicePanelStateContext);
|
|
const { channelId, controlsSpecs: controlsSpecs3, mode, setControlsMode, useReducedMotion } = context;
|
|
const styles = useStyles();
|
|
const [state, setState] = useState(null);
|
|
const sharedValue = useSharedValue(state);
|
|
useLayoutEffect(() => {
|
|
sharedValue.set(state);
|
|
});
|
|
const isConnectedToVoiceChannel = useIsConnectedToVoiceChannel(channelId);
|
|
useMaybeFetchSoundboardSounds({
|
|
shouldFetch: isConnectedToVoiceChannel
|
|
});
|
|
callback = useCallback((a0) => {
|
|
const { tab, source, disableControlsUpdate = false } = a0;
|
|
let c28201_2 = disableControlsUpdate;
|
|
const controlsProps = a0.controlsProps;
|
|
batchUpdates(() => {
|
|
let c30941_0 = false;
|
|
const mode3 = controlsSpecs3.get().mode;
|
|
const DRAWER = VoicePanelControlsModes.DRAWER;
|
|
setState((prevState) => {
|
|
c30941_0 = prevState !== tab;
|
|
return tab;
|
|
});
|
|
if (!c28201_2) {
|
|
setControlsMode({
|
|
mode: VoicePanelControlsModes.DRAWER,
|
|
...controlsProps
|
|
});
|
|
}
|
|
if (c30941_0 || mode3 !== DRAWER) {
|
|
trackVoicePanelTabOpened(channelId, tab, source);
|
|
}
|
|
});
|
|
}, [channelId, controlsSpecs3, setControlsMode]);
|
|
const controlAccessoryHeight = useControlAccessoryHeight();
|
|
c22701_12 = controlAccessoryHeight;
|
|
useLayoutEffect(() => {
|
|
let chatOpen;
|
|
const handleStoreChange2 = function handleStoreChange() {
|
|
const chatOpen2 = ChannelRTCStore.getChatOpen(channelId);
|
|
if (chatOpen2 !== chatOpen) {
|
|
chatOpen = chatOpen2;
|
|
if (chatOpen2) {
|
|
callback({
|
|
tab: "chat",
|
|
source: _trackVoicePanelTabOpened.VoicePanelTabAnalyticsSources.STORE,
|
|
controlsProps: {
|
|
debounce: true
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
const chatOpen2 = ChannelRTCStore.getChatOpen(channelId);
|
|
if (chatOpen2 !== chatOpen) {
|
|
chatOpen = chatOpen2;
|
|
if (chatOpen2) {
|
|
callback({
|
|
tab: "chat",
|
|
source: _trackVoicePanelTabOpened.VoicePanelTabAnalyticsSources.STORE,
|
|
controlsProps: {
|
|
debounce: true
|
|
}
|
|
});
|
|
}
|
|
}
|
|
ChannelRTCStore.addChangeListener(handleStoreChange2);
|
|
return () => {
|
|
ChannelRTCStore.removeChangeListener(handleStoreChange2);
|
|
};
|
|
}, [channelId, controlsSpecs3, callback, state]);
|
|
useEffect(() => {
|
|
const handleOpenChatTab2 = function handleOpenChatTab() {
|
|
callback({
|
|
tab: "chat",
|
|
source: _trackVoicePanelTabOpened.VoicePanelTabAnalyticsSources.HEADER_BUTTON
|
|
});
|
|
};
|
|
ComponentDispatch.subscribe(ComponentActions.VOICE_PANEL_OPEN_CHAT_TAB, handleOpenChatTab2);
|
|
return () => {
|
|
ComponentDispatch.unsubscribe(ComponentActions.VOICE_PANEL_OPEN_CHAT_TAB, handleOpenChatTab2);
|
|
};
|
|
}, [callback]);
|
|
const safeAreaInsets = getSafeAreaInsets();
|
|
sharedValue2 = useSharedValue({
|
|
width: _VoicePanelControlsUtils.getControlsDefaultWidth(getWindowDimensions().width, safeAreaInsets.left, safeAreaInsets.right),
|
|
height: 0,
|
|
x: 0,
|
|
y: 0,
|
|
drawerMode: false,
|
|
hidden: false
|
|
});
|
|
token = useToken(Module712.modules.mobile.VOICE_PANEL_CONTROLS_BORDER_RADIUS);
|
|
const ge = () => {
|
|
let r98, transform;
|
|
const r18 = {
|
|
borderBottomRightRadius: _spring.withSpring(sharedValue2.get().drawerMode ? 0 : token, BORDER_RADIUS_PHYSICS),
|
|
borderBottomLeftRadius: _spring.withSpring(sharedValue2.get().drawerMode ? 0 : token, BORDER_RADIUS_PHYSICS),
|
|
height: _spring.withSpring(sharedValue2.get().height, PANEL_CONTROLS_HEIGHT_PHYSICS),
|
|
width: _spring.withSpring(sharedValue2.get().width, MODE_CHANGE_PHYSICS),
|
|
marginLeft: _spring.withSpring(-1 * roundToNearestPixel(sharedValue2.get().width / 2), MODE_CHANGE_PHYSICS),
|
|
opacity: null,
|
|
transform: null
|
|
};
|
|
const r62 = sharedValue2.get().hidden ? 0 : 1;
|
|
L12: {
|
|
L11: {
|
|
r18.opacity = _spring.withSpring(r62, MODE_CHANGE_PHYSICS);
|
|
transform = [{
|
|
translateX: _spring.withSpring(sharedValue2.get().x, UI_SHOW_HIDE_PHYSICS)
|
|
}, ,];
|
|
if (!useReducedMotion.get()) {
|
|
if (!sharedValue2.get().hidden) {
|
|
if (!gestureState2.get().active) {
|
|
break L11;
|
|
}
|
|
if (gestureState2.get().requiresPop) {
|
|
break L11;
|
|
}
|
|
}
|
|
r98 = sharedValue2.get().height + CALL_TILE_GUTTER + c22701_12.get();
|
|
break L12;
|
|
}
|
|
}
|
|
r98 = sharedValue2.get().y;
|
|
}
|
|
transform[1] = {
|
|
translateY: _spring.withSpring(r98, UI_SHOW_HIDE_PHYSICS)
|
|
};
|
|
r18.transform = transform;
|
|
return r18;
|
|
};
|
|
ge.__closure = {
|
|
withSpring: _spring.withSpring,
|
|
wrapperSpecs: sharedValue2,
|
|
borderRadius: token,
|
|
BORDER_RADIUS_PHYSICS,
|
|
PANEL_CONTROLS_HEIGHT_PHYSICS,
|
|
MODE_CHANGE_PHYSICS,
|
|
roundToNearestPixel,
|
|
UI_SHOW_HIDE_PHYSICS,
|
|
useReducedMotion,
|
|
gestureState: gestureState2,
|
|
CALL_TILE_GUTTER,
|
|
accessoryHeights: controlAccessoryHeight
|
|
};
|
|
ge.__workletHash = 14734014706335;
|
|
ge.__initData = __initData13;
|
|
const animatedStyle = useAnimatedStyle(ge);
|
|
const de = () => ({
|
|
pointerEvents: mode.get() === VoicePanelModes.PANEL ? sharedValue2.get().hidden ? "none" : "auto" : "none"
|
|
});
|
|
de.__closure = {
|
|
mode,
|
|
VoicePanelModes,
|
|
wrapperSpecs: sharedValue2
|
|
};
|
|
de.__workletHash = 5608048435620;
|
|
de.__initData = __initData14;
|
|
const animatedProps = useAnimatedProps(de);
|
|
state2 = state;
|
|
sharedValue3 = sharedValue;
|
|
sharedValue4 = sharedValue2;
|
|
callback2 = callback;
|
|
controlsSpecs4 = void 0;
|
|
windowDimensions = void 0;
|
|
wrapperDimensions = void 0;
|
|
safeArea = void 0;
|
|
sharedValue5 = void 0;
|
|
sharedValue6 = void 0;
|
|
sharedValue7 = void 0;
|
|
sharedValue8 = void 0;
|
|
ref2 = void 0;
|
|
sharedValue9 = void 0;
|
|
gestureLock = void 0;
|
|
token2 = void 0;
|
|
const context2 = useContext(VoicePanelStateContext);
|
|
controlsSpecs4 = context2.controlsSpecs;
|
|
windowDimensions = context2.windowDimensions;
|
|
wrapperDimensions = context2.wrapperDimensions;
|
|
safeArea = context2.safeArea;
|
|
sharedValue5 = useSharedValue({
|
|
absoluteX: 0,
|
|
absoluteY: 0,
|
|
x: 0,
|
|
y: 0,
|
|
height: 0,
|
|
isDrawer: false,
|
|
active: false,
|
|
drawerTransitionHeight: TRANSITIONAL_HEIGHT,
|
|
interFloatingTransitionHeight
|
|
});
|
|
sharedValue6 = useSharedValue(0);
|
|
sharedValue7 = useSharedValue(false);
|
|
sharedValue8 = useSharedValue(0);
|
|
ref2 = useRef(void 0);
|
|
sharedValue9 = useSharedValue(false);
|
|
const [value] = useState(() => createUseAnimatedScrollLock(ref2, sharedValue9, sharedValue8, sharedValue7));
|
|
gestureLock = useControlsLock();
|
|
token2 = useToken(Module712.modules.mobile.VOICE_PANEL_GUTTER);
|
|
const memo = useMemo(() => {
|
|
const r36 = Gesture.Pan().manualActivation(true).maxPointers(1).shouldCancelWhenOutside(false).withRef(ref2);
|
|
const b = function b(a0) {
|
|
sharedValue6.set(0);
|
|
sharedValue5.set({
|
|
absoluteX: a0.changedTouches[0].absoluteX,
|
|
absoluteY: a0.changedTouches[0].absoluteY,
|
|
x: sharedValue4.get().x,
|
|
y: sharedValue4.get().y,
|
|
height: sharedValue4.get().height,
|
|
isDrawer: controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER,
|
|
active: false,
|
|
drawerTransitionHeight: TRANSITIONAL_HEIGHT,
|
|
interFloatingTransitionHeight
|
|
});
|
|
};
|
|
b.__closure = {
|
|
touchMoveCount: sharedValue6,
|
|
gestureSpecs: sharedValue5,
|
|
wrapperSpecs: sharedValue4,
|
|
controlsSpecs: controlsSpecs4,
|
|
VoicePanelControlsModes,
|
|
TRANSITIONAL_HEIGHT,
|
|
INTER_FLOATING_TRANSITIONAL_HEIGHT: interFloatingTransitionHeight
|
|
};
|
|
b.__workletHash = 3524850376026;
|
|
b.__initData = __initData7;
|
|
const r42 = r36.onTouchesDown(b);
|
|
const R = function R() {
|
|
_ReanimatedRexport.runOnJS(gestureLock.lock)();
|
|
};
|
|
R.__closure = {
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
gestureLock
|
|
};
|
|
R.__workletHash = 11720944776433;
|
|
R.__initData = __initData6;
|
|
const r51 = r42.onStart(R);
|
|
const h = function h(a0, a1) {
|
|
L28: {
|
|
if (a0.state === _Module5273.State.BEGAN && !sharedValue5.get().active) {
|
|
if (controlsSpecs4.get().mode !== VoicePanelControlsModes.HIDDEN) {
|
|
sharedValue6.set(sharedValue6.get() + 1);
|
|
const r17 = sharedValue6.get() <= SCROLL_BEGIN_GRACE_TICKS || sharedValue7.get();
|
|
const r16 = sharedValue3.get();
|
|
const r45 = r16 !== "settings" ? r16 === "app_launcher" ? sharedValue8.get() : 0 : sharedValue8.get();
|
|
const r49 = a0.changedTouches[0];
|
|
const { absoluteY, absoluteX } = r49;
|
|
const r18 = sharedValue5.get().absoluteY - absoluteY;
|
|
if (!(controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER && r17 && (r18 >= 0 || r45 > 0))) {
|
|
L23: {
|
|
if (!(controlsSpecs4.get().mode === VoicePanelControlsModes.FLOATING_DEFAULT && r18 > 30)) {
|
|
if (controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER) {
|
|
if (r18 < -30) {
|
|
break L23;
|
|
}
|
|
if (r18 > 30) {
|
|
break L23;
|
|
}
|
|
}
|
|
if (!(Math.abs(r18) > Math.abs(30))) {
|
|
break L28;
|
|
}
|
|
a1.fail();
|
|
break L28;
|
|
}
|
|
}
|
|
sharedValue5.set({
|
|
absoluteX,
|
|
absoluteY,
|
|
x: sharedValue4.get().x,
|
|
y: sharedValue4.get().y,
|
|
height: sharedValue4.get().height,
|
|
isDrawer: controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER,
|
|
active: true,
|
|
drawerTransitionHeight: TRANSITIONAL_HEIGHT,
|
|
interFloatingTransitionHeight
|
|
});
|
|
if (controlsSpecs4.get().mode !== VoicePanelControlsModes.DRAWER && state2 !== "settings") {
|
|
_ReanimatedRexport.runOnJS(callback2)({
|
|
tab: "settings",
|
|
source: _trackVoicePanelTabOpened.VoicePanelTabAnalyticsSources.GESTURE,
|
|
disableControlsUpdate: true
|
|
});
|
|
}
|
|
sharedValue9.set(true);
|
|
a1.activate();
|
|
}
|
|
} else {
|
|
a1.fail();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
h.__closure = {
|
|
State: _Module5273.State,
|
|
gestureSpecs: sharedValue5,
|
|
controlsSpecs: controlsSpecs4,
|
|
VoicePanelControlsModes,
|
|
touchMoveCount: sharedValue6,
|
|
SCROLL_BEGIN_GRACE_TICKS,
|
|
isDragScrolling: sharedValue7,
|
|
sharedTab: sharedValue3,
|
|
scrollOffsetValue: sharedValue8,
|
|
GESTURE_VERTICAL_MINIMUM: 30,
|
|
wrapperSpecs: sharedValue4,
|
|
TRANSITIONAL_HEIGHT,
|
|
INTER_FLOATING_TRANSITIONAL_HEIGHT: interFloatingTransitionHeight,
|
|
tab: state2,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
openTab: callback2,
|
|
VoicePanelTabAnalyticsSources: _trackVoicePanelTabOpened.VoicePanelTabAnalyticsSources,
|
|
scrollLock: sharedValue9
|
|
};
|
|
h.__workletHash = 13965683053434;
|
|
h.__initData = __initData5;
|
|
const r71 = r51.onTouchesMove(h);
|
|
const r73 = function(a0) {
|
|
const r24 = a0.absoluteY - sharedValue5.get().absoluteY;
|
|
const r11 = sharedValue5.get().height - sharedValue5.get().y - r24;
|
|
if (r11 > sharedValue5.get().drawerTransitionHeight) {
|
|
if (!sharedValue5.get().isDrawer) {
|
|
sharedValue5.set({
|
|
...sharedValue5.get(),
|
|
isDrawer: true
|
|
});
|
|
}
|
|
const height2 = calculateVoicePanelHeaderSpecs(safeArea.get(), token2).height;
|
|
sharedValue4.set({
|
|
...sharedValue4.get(),
|
|
x: 0,
|
|
y: 0,
|
|
width: _VoicePanelControlsUtils.getControlsDrawerOpenWidth(windowDimensions.get().width, safeArea.get().left, safeArea.get().right),
|
|
height: Math.min(r11, wrapperDimensions.get().drawerHeight - height2),
|
|
drawerMode: true
|
|
});
|
|
} else {
|
|
const r12 = r11 / sharedValue5.get().drawerTransitionHeight;
|
|
const height = controlsSpecs4.get().height;
|
|
const r3 = -1 * Math.max(r11 - safeArea.get().bottom - height, 0);
|
|
if (sharedValue5.get().isDrawer) {
|
|
sharedValue5.set({
|
|
...sharedValue5.get(),
|
|
isDrawer: false
|
|
});
|
|
}
|
|
if (!(height === sharedValue4.get().height || sharedValue4.get().drawerMode)) {
|
|
_ReanimatedRexport.runOnJS(_HapticUtils_native.triggerHapticFeedback)(_HapticUtils_native.HapticFeedbackTypes.IMPACT_MEDIUM);
|
|
}
|
|
sharedValue4.set({
|
|
...sharedValue4.get(),
|
|
x: 0,
|
|
y: -1 * safeArea.get().bottom + r3 * (1 - r12 / 1.5),
|
|
width: _VoicePanelControlsUtils.getControlsDefaultWidth(windowDimensions.get().width, safeArea.get().left, safeArea.get().right),
|
|
height,
|
|
drawerMode: false
|
|
});
|
|
}
|
|
};
|
|
r73.__closure = {
|
|
gestureSpecs: sharedValue5,
|
|
calculateVoicePanelHeaderSpecs,
|
|
safeArea,
|
|
edgeGutter: token2,
|
|
wrapperSpecs: sharedValue4,
|
|
getControlsDrawerOpenWidth: _VoicePanelControlsUtils.getControlsDrawerOpenWidth,
|
|
windowDimensions,
|
|
wrapperDimensions,
|
|
controlsSpecs: controlsSpecs4,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
triggerHapticFeedback: _HapticUtils_native.triggerHapticFeedback,
|
|
HapticFeedbackTypes: _HapticUtils_native.HapticFeedbackTypes,
|
|
getControlsDefaultWidth: _VoicePanelControlsUtils.getControlsDefaultWidth
|
|
};
|
|
r73.__workletHash = 10007030283382;
|
|
r73.__initData = __initData4;
|
|
const r94 = r71.onChange(r73);
|
|
const r96 = function u() {
|
|
sharedValue9.set(false);
|
|
sharedValue7.set(false);
|
|
sharedValue5.set({
|
|
...sharedValue5.get(),
|
|
active: false
|
|
});
|
|
_ReanimatedRexport.runOnJS(gestureLock.unlock)();
|
|
};
|
|
r96.__closure = {
|
|
scrollLock: sharedValue9,
|
|
isDragScrolling: sharedValue7,
|
|
gestureSpecs: sharedValue5,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
gestureLock
|
|
};
|
|
r96.__workletHash = 9808165597638;
|
|
r96.__initData = __initData3;
|
|
const r103 = r94.onTouchesCancelled(r96);
|
|
const r105 = function({ velocityY }) {
|
|
let r30;
|
|
const r17 = Math.abs(velocityY);
|
|
if (r17 > 200 && velocityY < 0) {
|
|
sharedValue4.set({
|
|
...sharedValue4.get(),
|
|
height: wrapperDimensions.get().drawerHeight - calculateVoicePanelHeaderSpecs(safeArea.get(), token2).height
|
|
});
|
|
r30 = controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER ? VoicePanelControlsModes.RESET : VoicePanelControlsModes.DRAWER;
|
|
} else {
|
|
r30 = r17 < 200 && sharedValue5.get().isDrawer ? controlsSpecs4.get().mode === VoicePanelControlsModes.DRAWER ? VoicePanelControlsModes.RESET : VoicePanelControlsModes.DRAWER : controlsSpecs4.get().mode === VoicePanelControlsModes.FLOATING_DEFAULT ? VoicePanelControlsModes.RESET : VoicePanelControlsModes.FLOATING_DEFAULT;
|
|
}
|
|
sharedValue9.set(false);
|
|
sharedValue7.set(false);
|
|
_ReanimatedRexport.runOnJS(gestureLock.unlock)(r30);
|
|
};
|
|
r105.__closure = {
|
|
wrapperSpecs: sharedValue4,
|
|
wrapperDimensions,
|
|
calculateVoicePanelHeaderSpecs,
|
|
safeArea,
|
|
edgeGutter: token2,
|
|
controlsSpecs: controlsSpecs4,
|
|
VoicePanelControlsModes,
|
|
gestureSpecs: sharedValue5,
|
|
scrollLock: sharedValue9,
|
|
isDragScrolling: sharedValue7,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
gestureLock
|
|
};
|
|
r105.__workletHash = 12106761920053;
|
|
r105.__initData = __initData2;
|
|
const r114 = r103.onEnd(r105);
|
|
const t = function t() {
|
|
sharedValue9.set(false);
|
|
sharedValue7.set(false);
|
|
_ReanimatedRexport.runOnJS(gestureLock.unlock)();
|
|
};
|
|
t.__closure = {
|
|
scrollLock: sharedValue9,
|
|
isDragScrolling: sharedValue7,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
gestureLock
|
|
};
|
|
t.__workletHash = 15918380969837;
|
|
t.__initData = __initData;
|
|
return r114.onFinalize(t);
|
|
}, [controlsSpecs4, gestureLock, sharedValue5, sharedValue7, callback, safeArea, sharedValue9, sharedValue8, sharedValue, state, sharedValue6, windowDimensions, wrapperDimensions, sharedValue2, token2]);
|
|
const r184 = () => sharedValue4.get().drawerMode;
|
|
r184.__closure = {
|
|
wrapperSpecs: sharedValue2
|
|
};
|
|
r184.__workletHash = 2949834828607;
|
|
r184.__initData = __initData8;
|
|
const r188 = function u(a0, a1) {
|
|
if (a0 !== a1) {
|
|
_ReanimatedRexport.runOnJS(_HapticUtils_native.triggerHapticFeedback)(_HapticUtils_native.HapticFeedbackTypes.IMPACT_MEDIUM);
|
|
}
|
|
};
|
|
r188.__closure = {
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
triggerHapticFeedback: _HapticUtils_native.triggerHapticFeedback,
|
|
HapticFeedbackTypes: _HapticUtils_native.HapticFeedbackTypes
|
|
};
|
|
r188.__workletHash = 10186886451735;
|
|
r188.__initData = __initData9;
|
|
useAnimatedReaction(r184, r188);
|
|
sharedValue10 = sharedValue2;
|
|
isScreenReaderEnabled2 = void 0;
|
|
c22703_2 = void 0;
|
|
controlsSpecs5 = void 0;
|
|
windowDimensions2 = void 0;
|
|
mode2 = void 0;
|
|
setControlsMode2 = void 0;
|
|
safeArea2 = void 0;
|
|
connected2 = void 0;
|
|
isScreenReaderEnabled2 = useIsScreenReaderEnabled();
|
|
const windowDimensionsSharedValue_native = useWindowDimensionsSharedValue_native({
|
|
ignoreKeyboard: true
|
|
});
|
|
c22703_2 = windowDimensionsSharedValue_native;
|
|
const context3 = useContext(VoicePanelStateContext);
|
|
controlsSpecs5 = context3.controlsSpecs;
|
|
windowDimensions2 = context3.windowDimensions;
|
|
mode2 = context3.mode;
|
|
setControlsMode2 = context3.setControlsMode;
|
|
safeArea2 = context3.safeArea;
|
|
connected2 = context3.connected;
|
|
const n = () => ({
|
|
connected: connected2.get(),
|
|
currentControlsMode: controlsSpecs5.get().mode,
|
|
mode: mode2.get(),
|
|
windowWidth: windowDimensions2.get().width,
|
|
windowHeight: windowDimensions2.get().height,
|
|
windowHeightIgnoringKeyboard: c22703_2.get().height,
|
|
controlsHeightValue: controlsSpecs5.get().height,
|
|
safeArea: safeArea2.get()
|
|
});
|
|
n.__closure = {
|
|
connected: connected2,
|
|
controlsSpecs: controlsSpecs5,
|
|
mode: mode2,
|
|
windowDimensions: windowDimensions2,
|
|
windowDimensionsIgnoringKeyboard: windowDimensionsSharedValue_native,
|
|
safeArea: safeArea2
|
|
};
|
|
n.__workletHash = 11588370229444;
|
|
n.__initData = __initData10;
|
|
const r227 = function(a0, a1) {
|
|
let maxHeight, minHeight;
|
|
const r24 = a1 == null ? void 0 : a1;
|
|
L28: {
|
|
if (!_cheapWorkletShallowEqual.cheapWorkletShallowEqual(a0, r24)) {
|
|
const { currentControlsMode, mode: mode3, windowWidth, windowHeightIgnoringKeyboard, controlsHeightValue, safeArea: safeArea3 } = a0;
|
|
if (VoicePanelModes.DISMISSED !== mode3 && VoicePanelModes.PIP !== mode3) {
|
|
VoicePanelModes.PANEL;
|
|
if (VoicePanelControlsModes.RESET === currentControlsMode) {
|
|
const r109 = _ReanimatedRexport.runOnJS(setControlsMode2);
|
|
let mode4 = a1?.currentControlsMode;
|
|
if (mode4 == null) {
|
|
mode4 = VoicePanelControlsModes.FLOATING_DEFAULT;
|
|
}
|
|
r109({
|
|
mode: mode4
|
|
});
|
|
return void 0;
|
|
}
|
|
if (VoicePanelControlsModes.HIDDEN === currentControlsMode) {
|
|
if (isScreenReaderEnabled2) {
|
|
sharedValue10.set({
|
|
...sharedValue10.get(),
|
|
hidden: false
|
|
});
|
|
break L28;
|
|
}
|
|
if (sharedValue10.get().hidden) {
|
|
break L28;
|
|
}
|
|
sharedValue10.set({
|
|
...sharedValue10.get(),
|
|
hidden: true
|
|
});
|
|
break L28;
|
|
}
|
|
if (VoicePanelControlsModes.FLOATING_DEFAULT === currentControlsMode) {
|
|
sharedValue10.set({
|
|
x: 0,
|
|
y: -1 * Math.max(safeArea3.bottom, EDGE_GUTTER),
|
|
width: _VoicePanelControlsUtils.getControlsDefaultWidth(windowWidth, safeArea3.left, safeArea3.right),
|
|
height: controlsHeightValue,
|
|
drawerMode: false,
|
|
hidden: false
|
|
});
|
|
break L28;
|
|
}
|
|
if (VoicePanelControlsModes.DRAWER !== currentControlsMode) {
|
|
break L28;
|
|
}
|
|
L14: {
|
|
L13: {
|
|
const drawerSpec = _VoicePanelControlUtils.getDrawerSpec(windowHeightIgnoringKeyboard, safeArea3.top);
|
|
minHeight = drawerSpec.minHeight;
|
|
maxHeight = drawerSpec.maxHeight;
|
|
if (!(sharedValue10.get().height <= controlsHeightValue)) {
|
|
if (a1 != null && sharedValue10.get().height === _VoicePanelControlUtils.getDrawerSpec(a1.windowHeight, a1.safeArea.top).maxHeight) {
|
|
break L13;
|
|
}
|
|
if (!(sharedValue10.get().height >= (maxHeight + minHeight) / 2)) {
|
|
break L14;
|
|
}
|
|
}
|
|
}
|
|
minHeight = maxHeight;
|
|
}
|
|
sharedValue10.set({
|
|
x: 0,
|
|
y: 0,
|
|
width: _VoicePanelControlsUtils.getControlsDrawerOpenWidth(windowWidth, safeArea3.left, safeArea3.right),
|
|
height: minHeight,
|
|
drawerMode: true,
|
|
hidden: false
|
|
});
|
|
break L28;
|
|
}
|
|
if (!sharedValue10.get().hidden) {
|
|
sharedValue10.set({
|
|
...sharedValue10.get(),
|
|
hidden: true
|
|
});
|
|
}
|
|
return void 0;
|
|
}
|
|
}
|
|
};
|
|
r227.__closure = {
|
|
cheapWorkletShallowEqual: _cheapWorkletShallowEqual.cheapWorkletShallowEqual,
|
|
VoicePanelModes,
|
|
wrapperSpecs: sharedValue2,
|
|
VoicePanelControlsModes,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
setControlsMode: setControlsMode2,
|
|
isScreenReaderEnabled: isScreenReaderEnabled2,
|
|
EDGE_GUTTER,
|
|
getControlsDefaultWidth: _VoicePanelControlsUtils.getControlsDefaultWidth,
|
|
getDrawerSpec: _VoicePanelControlUtils.getDrawerSpec,
|
|
getControlsDrawerOpenWidth: _VoicePanelControlsUtils.getControlsDrawerOpenWidth
|
|
};
|
|
r227.__workletHash = 1154430392188;
|
|
r227.__initData = __initData11;
|
|
useAnimatedReaction(n, r227);
|
|
let accessibilityViewIsModal;
|
|
[accessibilityViewIsModal, setState2] = useState(false);
|
|
const Ae = () => controlsSpecs3.get().mode;
|
|
Ae.__closure = {
|
|
controlsSpecs: controlsSpecs3
|
|
};
|
|
Ae.__workletHash = 7719878249076;
|
|
Ae.__initData = __initData15;
|
|
const De = function De(a0, a1) {
|
|
const r3 = a0 !== a1 && isScreenReaderEnabled;
|
|
L10: {
|
|
if (r3) {
|
|
if (a0 === VoicePanelControlsModes.DRAWER && a1 !== VoicePanelControlsModes.DRAWER) {
|
|
_ReanimatedRexport.runOnJS(setState2)(true);
|
|
break L10;
|
|
}
|
|
if (a0 !== VoicePanelControlsModes.DRAWER && a1 === VoicePanelControlsModes.DRAWER) {
|
|
_ReanimatedRexport.runOnJS(setState2)(false);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
De.__closure = {
|
|
isScreenReaderEnabled,
|
|
VoicePanelControlsModes,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
setIsDrawer: setState2
|
|
};
|
|
De.__workletHash = 12036469956927;
|
|
De.__initData = __initData16;
|
|
useAnimatedReaction(Ae, De);
|
|
let state3;
|
|
[state3, setState3] = useState(false);
|
|
const Me = () => sharedValue2.get().drawerMode;
|
|
Me.__closure = {
|
|
wrapperSpecs: sharedValue2
|
|
};
|
|
Me.__workletHash = 2374715205601;
|
|
Me.__initData = __initData17;
|
|
const be = function be(a0, a1) {
|
|
if (a0 !== a1 && c22701_2) {
|
|
const r13 = _ReanimatedRexport.runOnJS(setState3);
|
|
if (a0) {
|
|
r13(true);
|
|
} else {
|
|
r13(false);
|
|
}
|
|
}
|
|
};
|
|
be.__closure = {
|
|
isRefreshEnabled,
|
|
runOnJS: _ReanimatedRexport.runOnJS,
|
|
setIsDrawerActive: setState3
|
|
};
|
|
be.__workletHash = 1721919006032;
|
|
be.__initData = __initData18;
|
|
useAnimatedReaction(Me, be);
|
|
const id = useId();
|
|
const callback3 = useCallback(() => {
|
|
setControlsMode({
|
|
mode: VoicePanelControlsModes.FLOATING_DEFAULT
|
|
});
|
|
}, [setControlsMode]);
|
|
return <ControlsGestureScrollLock.Provider value={value}>
|
|
<VoicePanelControlsDimOverlay wrapperSpecs={sharedValue2} />
|
|
<Component channelId={channelId} wrapperSpecs={sharedValue2} controlsSpecs={controlsSpecs3} accessoryHeights={controlAccessoryHeight} gestureState={gestureState2} />
|
|
<VoicePanelAccessibilityView nativeID={id} style={styles.accessibilityWrapper} accessibilityViewIsModal={accessibilityViewIsModal} onAccessibilityEscape={callback3} pointerEvents="box-none">
|
|
<GestureDetector gesture={memo}>
|
|
<ReanimatedNativeView style={[styles.wrapper, animatedStyle]} animatedProps={animatedProps}>
|
|
<ThemeContextProvider theme={isRefreshEnabled ? isConnectedToVoiceChannel ? state3 ? void 0 : ThemeTypes.MIDNIGHT : void 0 : void 0}>
|
|
<VoicePanelVisualEffectView matchAppTheme={isConnectedToVoiceChannel ? !isConnectedToVoiceChannel : isAndroid() || isRefreshEnabled} />
|
|
<VoicePanelButtonsInner openTab={callback} wrapperSpecs={sharedValue2} sharedTab={sharedValue} />
|
|
</ThemeContextProvider>
|
|
<VoicePanelControlsDrawer wrapperSpecs={sharedValue2} tab={state} sharedTab={sharedValue} gestureSpecs={sharedValue5} openTab={callback} />
|
|
{isMetaQuest() ? null : <Component2 openTab={callback} />}
|
|
</ReanimatedNativeView>
|
|
</GestureDetector>
|
|
</VoicePanelAccessibilityView>
|
|
</ControlsGestureScrollLock.Provider>;
|
|
});
|
|
export default r106;
|