102 lines
4.8 KiB
TypeScript
102 lines
4.8 KiB
TypeScript
// Metro module 4607 (f4608).
|
|
import { forwardRef, useMemo } from "react";
|
|
import * as _Module17 from "react-native";
|
|
import { IOS_POINTER_STYLE } from "../../Styles/native/styleConstants";
|
|
import { useThemeContext, ThemeContextProvider } from "../../../../_bundle/Module3901";
|
|
import { createStyles } from "../../Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { useButtonPressAnimationProps } from "./ButtonHooks.native";
|
|
import ReanimatedRexport from "../../../../modules/reanimated/ReanimatedRexport";
|
|
import { isNotNullish } from "../../../../utils/GlobalUtils";
|
|
import { isAndroid } from "../../../../utils/PlatformUtils";
|
|
let AnimatedComponent, AnimatedComponent2;
|
|
const _excluded = ["style"];
|
|
const { Pressable, TouchableOpacity } = _Module17;
|
|
const useStyles = createStyles((a0) => ({
|
|
button: {
|
|
...a0 === "primary-overlay" ? Module712.shadows.SHADOW_BUTTON_OVERLAY : {}
|
|
},
|
|
disabled: {
|
|
opacity: 0.5
|
|
}
|
|
}));
|
|
AnimatedComponent = ReanimatedRexport.createAnimatedComponent(Pressable);
|
|
AnimatedComponent2 = ReanimatedRexport.createAnimatedComponent(TouchableOpacity);
|
|
const r43 = forwardRef(function(a0, a1) {
|
|
const { children, style, variant = "primary" } = a0;
|
|
let disabled2 = a0.disabled;
|
|
if (disabled2 === void 0) {
|
|
disabled2 = false;
|
|
}
|
|
let loading = a0.loading;
|
|
if (loading === void 0) {
|
|
loading = false;
|
|
}
|
|
const busy = loading;
|
|
const pressed = a0.pressed;
|
|
let onPress = a0.onPress;
|
|
const { onPressDisabled, onPressIn: onPressIn2, onPressOut: onPressOut2, onLongPress, onLayout, accessible } = a0;
|
|
let accessibilityRole = a0.accessibilityRole;
|
|
const { accessibilityLabel, accessibilityHint, accessibilityValue, accessibilityState, accessibilityActions, onAccessibilityAction, accessibilityElementsHidden, importantForAccessibility, pointerEvents, hitSlop, scaleAmountInPx } = a0;
|
|
const styles = useStyles(variant);
|
|
const disabled = disabled2 ? onPressDisabled == null : disabled2;
|
|
if (disabled2) {
|
|
onPress = onPressDisabled;
|
|
}
|
|
if (onPress == null) {
|
|
onPress = void 0;
|
|
}
|
|
const buttonPressAnimationProps = useButtonPressAnimationProps(pressed, scaleAmountInPx, onLayout, onPressIn2, onPressOut2);
|
|
const { style: style2, ...rest } = buttonPressAnimationProps;
|
|
const r52 = pressed == null ? {
|
|
animatedScaleStyles: void 0,
|
|
buttonAnimationProps: {
|
|
onLayout,
|
|
onPressIn: onPressIn2,
|
|
onPressOut: onPressOut2
|
|
}
|
|
} : {
|
|
animatedScaleStyles: style2,
|
|
buttonAnimationProps: rest
|
|
};
|
|
const { animatedScaleStyles, buttonAnimationProps } = r52;
|
|
const memo = useMemo(() => ({
|
|
...accessibilityState,
|
|
disabled,
|
|
busy
|
|
}), [accessibilityState, disabled, busy]);
|
|
const theme = useThemeContext().theme;
|
|
const theme2 = variant !== "primary-overlay" ? variant === "secondary-overlay" ? theme === "light" ? "dark" : void 0 : void 0 : "light";
|
|
const r72 = theme2 != null ? <ThemeContextProvider theme={theme2}>{children}</ThemeContextProvider> : children;
|
|
const style3 = [styles.button, style, , , ,];
|
|
if (disabled2) {
|
|
disabled2 = styles.disabled;
|
|
}
|
|
style3[2] = disabled2;
|
|
style3[3] = animatedScaleStyles;
|
|
style3[4] = IOS_POINTER_STYLE;
|
|
if (accessibilityRole !== "none") {
|
|
if (accessibilityRole == null) {
|
|
accessibilityRole = "button";
|
|
}
|
|
return <AnimatedComponent {...buttonAnimationProps} ref={a1} accessible={accessible} accessibilityRole={accessibilityRole} accessibilityLabel={accessibilityLabel} accessibilityHint={accessibilityHint} accessibilityValue={accessibilityValue} accessibilityState={memo} accessibilityActions={accessibilityActions} onAccessibilityAction={onAccessibilityAction} accessibilityElementsHidden={accessibilityElementsHidden} importantForAccessibility={importantForAccessibility} pointerEvents={pointerEvents} style={style3} onPress={onPress} onLongPress={onLongPress} disabled={disabled} hitSlop={hitSlop}>{r72}</AnimatedComponent>;
|
|
}
|
|
const accessibilityLabel2 = accessibilityElementsHidden ? "" : [accessibilityLabel, accessibilityHint].filter(isNotNullish).join(", ");
|
|
let r98 = accessible;
|
|
if (r98 == null) {
|
|
r98 = isAndroid();
|
|
}
|
|
return <AnimatedComponent2 {...buttonAnimationProps} ref={a1} accessible={r98 ? !r98 : void 0} accessibilityRole="none" accessibilityLabel={accessibilityLabel2} accessibilityElementsHidden={accessibilityElementsHidden} activeOpacity={1} importantForAccessibility={importantForAccessibility} style={style3} onPress={onPress} onPressIn={(event) => {
|
|
const onPressIn2 = buttonAnimationProps.onPressIn;
|
|
if (onPressIn2 != null) {
|
|
onPressIn2.call(buttonAnimationProps, event);
|
|
}
|
|
}} onPressOut={(event) => {
|
|
const onPressOut2 = buttonAnimationProps.onPressOut;
|
|
if (onPressOut2 != null) {
|
|
onPressOut2.call(buttonAnimationProps, event);
|
|
}
|
|
}} hitSlop={hitSlop}>{r72}</AnimatedComponent2>;
|
|
});
|
|
export { r43 as BaseButton };
|