Files
discord-decomp/sources/design/components/Button/native/BaseButton.native.tsx
T
2026-07-28 01:06:53 +03:00

121 lines
8.1 KiB
TypeScript

/* Metro module 4585; source: design/components/Button/native/BaseButton.native.tsx; dependencies: [29, 31, 27, 4586, 33, 3868, 4501, 697, 4583, 4017, 1360, 477, 2] */
import ObjectWithoutProperties from '../../../../by-id/module-00029-ObjectWithoutProperties.js'; /* Metro dependency 29 */
import ReanimatedRexport from '../../../../modules/reanimated/ReanimatedRexport.tsx'; /* Metro dependency 4017 */
import * as FileImportTrackerModule from '../../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from '../../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */
import * as NativeModule from '../../../../external/discord_common/js/packages/design/native.tsx'; /* Metro dependency 3868 */
import * as CreateStylesModule from '../../Styles/native/createStyles.tsx'; /* Metro dependency 4501 */
import * as ButtonHooksNativeModule from './ButtonHooks.native.tsx'; /* Metro dependency 4583 */
import * as StyleConstantsModule from '../../Styles/native/styleConstants.tsx'; /* Metro dependency 4586 */
function _fun38889(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#38889, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4763:6, offset: 0x010cf432, size: 309 bytes, params: 8, frame: 22
const env0_0 = require;
const env0_3 = ['style'];
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactModule;
const {Pressable, TouchableOpacity} = ReactNativeModule;
const env0_8 = (CreateStylesModule).createStyles(_fun38890);
const env0_9 = (ReanimatedRexport).createAnimatedComponent(Pressable);
const env0_10 = (ReanimatedRexport).createAnimatedComponent(TouchableOpacity);
value = value.forwardRef(_fun38891);
(FileImportTrackerModule).fileFinishedImporting('design/components/Button/native/BaseButton.native.tsx');
exports.BaseButton = value;
function _fun38890(a0) { // fn#38890, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4763:247, offset: 0x010cf567, size: 140 bytes, params: 2, frame: 13
var r3;
var r2;
if (a0 === 'secondary') {
r2 = (importDefault(697) /* metro dependency 697: native */).shadows.SHADOW_LOW;
r3 = importDefault;
} else if (a0 !== 'primary-overlay') {
r2 = {};
} else {
r2 = (importDefault(697) /* metro dependency 697: native */).shadows.SHADOW_BUTTON_OVERLAY;
r3 = importDefault;
}
const object2 = {};
copyDataProperties(object2, r2, r3);
return {button: object2, disabled: {opacity: 0.5}};
}
function _fun38891({children, style, variant, disabled, loading, pressed, onPress, onPressDisabled, onPressIn, onPressOut, onLongPress, onLayout, accessible, accessibilityRole, accessibilityLabel, accessibilityHint, accessibilityValue, accessibilityState, accessibilityActions, onAccessibilityAction, accessibilityElementsHidden, importantForAccessibility, pointerEvents, hitSlop, scaleAmountInPx}, a1) { // fn#38891, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4763:524, offset: 0x010cf5f3, size: 1065 bytes, params: 3, frame: 46
variant = variant === undefined ? 'primary' : variant;
disabled = !(disabled === undefined) && disabled;
loading = !(loading === undefined) && loading;
const env0_3 = undefined;
const styles = useStyles(variant);
const r7 = disabled && onPressDisabled == null;
const r9 = (disabled ? onPressDisabled : onPress) ?? undefined;
const value7 = (ButtonHooksNativeModule).useButtonPressAnimationProps(pressed,
scaleAmountInPx, onLayout, onPressIn, onPressOut);
const style2 = value7.style;
let binding = ObjectWithoutProperties;
const r10 = pressed == null ? {animatedScaleStyles: undefined, buttonAnimationProps: {onLayout: onLayout,
onPressIn: onPressIn, onPressOut: onPressOut}} : {animatedScaleStyles: style2,
buttonAnimationProps: binding(value7, env0_3)};
const animatedScaleStyles = r10.animatedScaleStyles;
const buttonAnimationProps = r10.buttonAnimationProps;
const value9 = env0_5.useMemo(_fun38892, [accessibilityState, r7, loading]);
const useThemeContext = NativeModule.useThemeContext;
const theme = Reflect.apply(useThemeContext, NativeModule, []).theme;
const value10 = 'light';
const r30 = variant === 'primary-overlay' ? value10 : variant !== 'secondary-overlay' || value10 !== theme ? undefined : 'dark';
const r5 = (
r30 == null
? children
: (
<NativeModule.ThemeContextProvider theme={r30}>
{children}
</NativeModule.ThemeContextProvider>
)
);
const items2 = [styles.button, style];
disabled = disabled && styles.disabled;
items2[2] = disabled;
items2[3] = animatedScaleStyles;
items2[4] = IOS_POINTER_STYLE;
if (accessibilityRole !== 'none') {
return ((Component) => <Component {...buttonAnimationProps} {...{['ref']: a1}} {...{['accessible']: accessible}} {...{['accessibilityRole']: accessibilityRole ?? 'button'}} {...{['accessibilityLabel']: accessibilityLabel}} {...{['accessibilityHint']: accessibilityHint}} {...{['accessibilityValue']: accessibilityValue}} {...{['accessibilityState']: value9}} {...{['accessibilityActions']: accessibilityActions}} {...{['onAccessibilityAction']: onAccessibilityAction}} {...{['accessibilityElementsHidden']: accessibilityElementsHidden}} {...{['importantForAccessibility']: importantForAccessibility}} {...{['pointerEvents']: pointerEvents}} {...{['style']: items2}} {...{['onPress']: r9}} {...{['onLongPress']: onLongPress}} {...{['disabled']: r7}} {...{['hitSlop']: hitSlop}}>{r5}</Component>)(env0_9);
}
const r27 = accessibilityElementsHidden ? '' : [accessibilityLabel,
accessibilityHint].filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish).join(', ');
binding = env0_10;
const bindingProps2 = {...buttonAnimationProps};
bindingProps2['ref'] = a1;
bindingProps2['accessible'] = !(accessible ?? (require(477) /* metro dependency 477: PlatformUtils */).isAndroid()) && undefined;
bindingProps2['accessibilityRole'] = 'none';
bindingProps2['accessibilityLabel'] = r27;
bindingProps2['accessibilityElementsHidden'] = accessibilityElementsHidden;
bindingProps2['activeOpacity'] = 1;
bindingProps2['importantForAccessibility'] = importantForAccessibility;
bindingProps2['style'] = items2;
bindingProps2['onPress'] = r9;
bindingProps2['onPressIn'] = function(a0) {
if (buttonAnimationProps.onPressIn != null) {
buttonAnimationProps.onPressIn(a0);
}
};
bindingProps2['onPressOut'] = function(a0) {
if (buttonAnimationProps.onPressOut != null) {
buttonAnimationProps.onPressOut(a0);
}
};
bindingProps2['hitSlop'] = hitSlop;
return ((Component) => <Component {...bindingProps2}>{r5}</Component>)(binding);
function _fun38892() { // fn#38892, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4763:1367, offset: 0x010cfa1c, size: 44 bytes, params: 1, frame: 13
const object = {};
copyDataProperties(object, accessibilityState, undefined);
object['disabled'] = env0_2;
object['busy'] = loading;
return object;
}
}
}
global.__d(_fun38889, 4585, [29, 31, 27, 4586, 33, 3868, 4501, 697, 4583, 4017, 1360, 477,
2]) /* metro module 4585, dependencies: [29, 31, 27, 4586, 33, 3868, 4501, 697, 4583, 4017, 1360, 477, 2] */;