Files
discord-decomp/_bundle/BottomSheetHandleContainer.jsx
T
2026-11-01 12:12:55 +02:00

62 lines
3.4 KiB
React

// Metro module 5389 (f5390).
import * as _Module19 from "react";
import { useCallback, useMemo, useRef } from "react";
import * as _Module5249 from "./Module5249";
import { useBottomSheetInternal, useBottomSheetGestureHandlers, useBoundingClientRect } from "./Module5250";
import { Gesture, GestureDetector } from "./Module5273";
import BottomSheetHandle from "./BottomSheetHandle";
import Module1606 from "./Module1606";
const memo2 = _Module19.memo;
const r24 = memo2(function BottomSheetHandleContainerComponent(props) {
const { animatedIndex, animatedPosition, simultaneousHandlers, enableHandlePanningGesture = _Module5249.DEFAULT_ENABLE_HANDLE_PANNING_GESTURE } = props;
const DEFAULT_ENABLE_HANDLE_PANNING_GESTURE = enableHandlePanningGesture;
const handleHeight = props.handleHeight;
let HandleComponent = props.handleComponent;
const { handleStyle, handleIndicatorStyle } = props;
const ref = useRef(null);
const bottomSheetInternal = useBottomSheetInternal();
const { activeOffsetX, activeOffsetY, failOffsetX, failOffsetY, waitFor, simultaneousHandlers: simultaneousHandlers2 } = bottomSheetInternal;
const handlePanGestureHandler = useBottomSheetGestureHandlers().handlePanGestureHandler;
const memo = useMemo(() => {
const r1 = [];
if (simultaneousHandlers) {
r1.push(simultaneousHandlers);
}
if (simultaneousHandlers2) {
const isArray = Array.isArray(simultaneousHandlers2);
const push = r1.push;
if (isArray) {
push.apply(r1, [...simultaneousHandlers2]);
} else {
push.call(r1, simultaneousHandlers2);
}
}
return r1;
}, [simultaneousHandlers2, simultaneousHandlers]);
const memo2 = useMemo(() => {
const r30 = Gesture.Pan().enabled(DEFAULT_ENABLE_HANDLE_PANNING_GESTURE).shouldCancelWhenOutside(false).runOnJS(false).onStart(handlePanGestureHandler.handleOnStart).onChange(handlePanGestureHandler.handleOnChange).onEnd(handlePanGestureHandler.handleOnEnd).onFinalize(handlePanGestureHandler.handleOnFinalize);
const r32 = waitFor ? r30.requireExternalGestureToFail(waitFor) : r30;
const r35 = memo ? r32.simultaneousWithExternalGesture(memo) : r32;
const r38 = activeOffsetX ? r35.activeOffsetX(activeOffsetX) : r35;
const r41 = activeOffsetY ? r38.activeOffsetY(activeOffsetY) : r38;
const r44 = failOffsetX ? r41.failOffsetX(failOffsetX) : r41;
return failOffsetY ? r44.failOffsetY(failOffsetY) : r44;
}, [activeOffsetX, activeOffsetY, DEFAULT_ENABLE_HANDLE_PANNING_GESTURE, failOffsetX, failOffsetY, memo, waitFor, handlePanGestureHandler.handleOnChange, handlePanGestureHandler.handleOnEnd, handlePanGestureHandler.handleOnFinalize, handlePanGestureHandler.handleOnStart]);
const callback = useCallback(function handleContainerLayout(a0) {
handleHeight.value = a0.nativeEvent.layout.height;
}, [handleHeight]);
useBoundingClientRect(ref, useCallback((a0) => {
handleHeight.value = a0.height;
}, [handleHeight]));
if (HandleComponent == null) {
HandleComponent = BottomSheetHandle;
}
return <GestureDetector gesture={memo2}>
<Module1606.View key="BottomSheetHandleContainer" ref={ref} onLayout={callback}>
<HandleComponent animatedIndex={animatedIndex} animatedPosition={animatedPosition} style={handleStyle} indicatorStyle={handleIndicatorStyle} />
</Module1606.View>
</GestureDetector>;
});
r24.displayName = "BottomSheetHandleContainer";
export default r24;