/* Metro module 4500; source: design/components/AlertModal/native/AlertModal.native.tsx; dependencies: [5, 57, 862, 31, 27, 482, 33, 4501, 697, 4508, 4497, 4017, 1848, 4509, 4555, 690, 4562, 1244, 3875, 1585, 4570, 1478, 4571, 4572, 4573, 4577, 4578, 2] */ import Module00005 from '../../../../by-id/module-00005.js'; /* Metro dependency 5 */ import Module00057 from '../../../../by-id/module-00057.js'; /* Metro dependency 57 */ import Module00862 from '../../../../by-id/module-00862.js'; /* Metro dependency 862 */ import UseWindowDimensionsNative from '../../../../modules/screen/useWindowDimensions.native.tsx'; /* Metro dependency 1478 */ import UseSafeAreaInsetsNative from '../../../../modules/safe_area/useSafeAreaInsets.native.tsx'; /* Metro dependency 1585 */ import ReanimatedRexport from '../../../../modules/reanimated/ReanimatedRexport.tsx'; /* Metro dependency 4017 */ import OverlayView from '../../../void/OverlayView/native/OverlayView.tsx'; /* Metro dependency 4509 */ 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 ConstantsModule from '../../../../external/discord_common/js/shared/Constants.tsx'; /* Metro dependency 482 */ import * as IndexNativeModule from '../../../../intl/index.native.tsx'; /* Metro dependency 1244 */ import * as AccessibilityPreferencesContextModule from '../../../../external/discord_common/js/packages/design/components/AccessibilityPreferencesContext/AccessibilityPreferencesContext.tsx'; /* Metro dependency 3875 */ import * as ReanimatedRexportModule from '../../../../modules/reanimated/ReanimatedRexport.tsx'; /* Metro dependency 4017 */ import * as UseAlertStoreNativeModule from './useAlertStore.native.tsx'; /* Metro dependency 4497 */ import * as CreateStylesModule from '../../Styles/native/createStyles.tsx'; /* Metro dependency 4501 */ import * as TransitionGroupModule from '../../TransitionGroup/TransitionGroup.tsx'; /* Metro dependency 4508 */ import * as DialogNativeModule from '../../Dialog/native/Dialog.native.tsx'; /* Metro dependency 4555 */ import * as BackdropNativeModule from '../../Backdrop/native/Backdrop.native.tsx'; /* Metro dependency 4562 */ import * as StackNativeModule from '../../Stack/native/Stack.native.tsx'; /* Metro dependency 4572 */ import * as TextModule from '../../Text/native/Text.tsx'; /* Metro dependency 4573 */ import * as SpringModule from '../../../animation/reanimated/spring/spring.tsx'; /* Metro dependency 4577 */ import * as ButtonNativeModule from '../../Button/native/Button.native.tsx'; /* Metro dependency 4578 */ function _fun38389(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#38389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:6, offset: 0x010be8a8, size: 808 bytes, params: 8, frame: 29 const env0_0 = require; const getAlertModalItemKey = function(a0) { return a0.key; }; const AlertModal2 = AlertModal; const AlertActions2 = AlertActions; const AlertActionButton2 = AlertActionButton; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ReactModule; const NOOP = (ConstantsModule).NOOP; const createStyles = CreateStylesModule.createStyles; const object2 = {'backgroundColor': null, 'margin': 16, 'width': '100%', 'maxWidth': 400, 'height': '100%', 'borderRadius': null, 'borderWidth': 1}; const MOBILE_ALERT_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_ALERT_BACKGROUND_DEFAULT; object2.backgroundColor = MOBILE_ALERT_BACKGROUND_DEFAULT; object2.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.xl; const BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE; object2.borderColor = BORDER_SUBTLE; const SHADOW_TOP_HIGH = (importDefault(697) /* metro dependency 697: native */).shadows.SHADOW_TOP_HIGH; copyDataProperties(object2, SHADOW_TOP_HIGH, undefined); const env0_13 = Reflect.apply(createStyles, CreateStylesModule, [{root: {'flex': 1, 'position': 'relative', 'justifyContent': 'center', 'alignItems': 'center', 'paddingHorizontal': 16}, content: object2, overflow: {'width': '100%', 'height': '100%', 'overflow': 'hidden', 'padding': 24, 'position': 'relative'}, body: {alignItems: 'center'}, contentText: {textAlign: 'center'}}]); const env0_14 = {'overshootClamping': true, 'damping': 35, 'stiffness': 450, 'mass': 0.5, 'restDisplacementThreshold': 0.001}; const createContext = value.createContext; const TransitionStates = (TransitionGroupModule).TransitionStates; const YEETED = TransitionStates.YEETED; const env0_15 = Reflect.apply(createContext, value, [YEETED]); const env0_16 = value.createContext(NOOP); const env0_17 = value.createContext(0); const env0_18 = value.createContext(''); const env0_19 = value.createContext(null); value = value.memo(_fun38414); object = {code: 'function AlertModalNativeTsx1(){const{withAlertModalSpring,sharedVisible,sharedTransitionState,TransitionStates,runOnJS,cleanUp}=this.__closure;return{opacity:withAlertModalSpring(sharedVisible.get(),function(finished){if(finished===true&&sharedVisible.get()===0&&sharedTransitionState.get()===TransitionStates.YEETED){runOnJS(cleanUp)();}})};}'}; object = {code: "function AlertModalNativeTsx2(){const{sharedVisible,sharedTransitionState,TransitionStates,runOnJS,cleanUp,windowHeight,ALERT_MODAL_MARGIN,safeAreaTop,safeAreaBottom,withAlertModalSpring,sharedIndex,sharedTopHeight,useReducedMotion}=this.__closure;var _CARD_OFFSETS$sharedI;function onComplete(finished){if(finished===true&&sharedVisible.get()===0&&sharedTransitionState.get()===TransitionStates.YEETED){runOnJS(cleanUp)();}}const CARD_OFFSETS=[0,-20,-34];const maxHeight=windowHeight-ALERT_MODAL_MARGIN*2-Math.max(safeAreaTop,safeAreaBottom)*2;return{position:'absolute',opacity:withAlertModalSpring(sharedVisible.get(),onComplete),zIndex:10-sharedIndex.get(),height:sharedIndex.get()>0?sharedTopHeight.get():'auto',maxHeight:maxHeight,transform:useReducedMotion?[]:[{scale:withAlertModalSpring(sharedVisible.get()===1?1-sharedIndex.get()*0.1:0.7)},{translateY:withAlertModalSpring(sharedVisible.get()===1?(_CARD_OFFSETS$sharedI=CARD_OFFSETS[sharedIndex.get()])!==null&&_CARD_OFFSETS$sharedI!==void 0?_CARD_OFFSETS$sharedI:sharedVisible.get()*-12:50-sharedIndex.get()*50)}]};}"}; object = {code: "function withAlertModalSpring_AlertModalNativeTsx3(value,callback){const{withSpring,MODAL_SPRING}=this.__closure;return withSpring(value,MODAL_SPRING,'animate-always',callback);}"}; const env0_23 = _fun38421(); object = {code: 'function AlertModalNativeTsx4(){const{sharedTransitionState}=this.__closure;return sharedTransitionState.get();}'}; object = {code: 'function AlertModalNativeTsx5(transitionState){const{TransitionStates,sharedVisible,runOnJS,cleanUp}=this.__closure;if(transitionState===TransitionStates.YEETED){if(sharedVisible.get()===1){sharedVisible.set(0);}else{runOnJS(cleanUp)();}}else{sharedVisible.set(1);}}'}; (FileImportTrackerModule).fileFinishedImporting('design/components/AlertModal/native/AlertModal.native.tsx'); exports.AlertModalContainer = value; exports.useDismissModalCallback = useDismissModalCallback; exports.AlertModal = AlertModal2; exports.AlertActions = AlertActions2; exports.AlertActionButton = AlertActionButton2; exports.showConfirmModal = showConfirmModal; function dismissTopAlert() { // fn#38391, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:2052, offset: 0x010bebd0, size: 185 bytes, params: 1, frame: 17 var moduleValue; const value2 = undefined; const useAlertStore = (require(4497) /* metro dependency 4497: useAlertStoreNative */).useAlertStore; const getState = useAlertStore.getState; const value3 = Module00862(Reflect.apply(getState, useAlertStore, []).alerts); const property = value3[0]; const env0_0 = value3.slice(1); if (!(property != null && property.dismissable === false)) { moduleValue = require(4497) /* metro dependency 4497: useAlertStoreNative */; moduleValue.dismissAlert(property == null ? value2 : property.key); (require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun38392); } return value2; function _fun38392() { // fn#38392, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:2250, offset: 0x010bec89, size: 58 bytes, params: 1, frame: 12 const useAlertStore = (UseAlertStoreNativeModule).useAlertStore; return useAlertStore.setState({alerts: env0_0}); } } function AlertModalBackdrop() { // fn#38393, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:2661, offset: 0x010becc3, size: 355 bytes, params: 1, frame: 23 const value2 = env0_6.useContext(env0_16); const value4 = Module00057(useSharedAnimationState(), 2); const property = value4[0]; const property2 = value4[1]; const value5 = (require(4497) /* metro dependency 4497: useAlertStoreNative */).useAlertStore(function(a0) { return a0.alerts[0]?.dismissable !== false; }); const useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; const AlertModalBackdropT2 = AlertModalBackdropT; const object = {withAlertModalSpring: env0_23, sharedVisible: property2, sharedTransitionState: property}; const TransitionStates = (TransitionGroupModule).TransitionStates; object.TransitionStates = TransitionStates; object.runOnJS = ReanimatedRexportModule.runOnJS; object.cleanUp = value2; AlertModalBackdropT2.__closure = object; AlertModalBackdropT2.__workletHash = 4470729133936; AlertModalBackdropT2.__initData = env0_20; const value6 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [AlertModalBackdropT2]); const Backdrop = (BackdropNativeModule).Backdrop; const dismissTopAlert2 = value5 ? dismissTopAlert : null; const intl = (IndexNativeModule).intl; const string = intl.string; const Xkfav5 = (IndexNativeModule).t.Xkfav5; return ( ); function AlertModalBackdropT() { // fn#38395, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:2893, owner: AlertModalBackdrop.t, offset: 0x010bee4e, size: 46 bytes, params: 1, frame: 14 var environment; const object = {}; const value = environment.__proto__; object.opacity = env1_23(env0_2.get(), _fun38396); return object; function _fun38396(a0) { // fn#38396, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:2930, offset: 0x010bee7c, size: 147 bytes, params: 2, frame: 13 var r0; var value2; var runOnJS; var value3; let value = a0 === true; if (value) { value = environment.__proto__; value = env1_2.get(); value = value === 0; r0 = value; } else { r0 = value; } if (r0) { value = environment.__proto__; value = env1_1.get(); value2 = environment.__proto__.__proto__; value = value === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.YEETED; r0 = value; } if (r0) { value = environment.__proto__.__proto__; value = require(4017) /* metro dependency 4017: ReanimatedRexport */; runOnJS = value.runOnJS; value3 = environment.__proto__; Reflect.apply(runOnJS, value, [env1_0])(); } } } } function AlertModal({header, title, content, actions, extraContent}) { // fn#38397, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:4464, offset: 0x010bef0f, size: 1015 bytes, params: 2, frame: 39 const Text = (TextModule).Text; let binding = property3; let useContext = binding.useContext; const value2 = Reflect.apply(useContext, binding, [env0_16]); const value3 = property3.useContext(env0_17); const styles = useStyles(); const value4 = property3.useContext(env0_19); binding = property3; useContext = binding.useContext; const AccessibilityPreferencesContext = (AccessibilityPreferencesContextModule).AccessibilityPreferencesContext; const enabled = Reflect.apply(useContext, binding, [AccessibilityPreferencesContext]).reducedMotion.enabled; const value6 = property3.useRef(null); const env0_4 = value6; const value7 = (ReanimatedRexportModule).useSharedValue(value3); const value9 = env0_4(useSharedAnimationState(), 2); const property = value9[0]; var property3 = property; const property2 = value9[1]; const {top, bottom} = (UseSafeAreaInsetsNative)(); property3.useEffect(_fun38398, [value3]); const height = (UseWindowDimensionsNative)().height; const useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; const AlertModalB2 = AlertModalB; object = {sharedVisible: property2, sharedTransitionState: property}; const TransitionStates = (TransitionGroupModule).TransitionStates; object.TransitionStates = TransitionStates; object.runOnJS = ReanimatedRexportModule.runOnJS; object.cleanUp = value2; object.windowHeight = height; object.ALERT_MODAL_MARGIN = 16; object.safeAreaTop = top; object.safeAreaBottom = bottom; object.withAlertModalSpring = env0_23; object.sharedIndex = value7; object.sharedTopHeight = value4; object.useReducedMotion = enabled; AlertModalB2.__closure = object; AlertModalB2.__workletHash = 655123755546; AlertModalB2.__initData = env0_21; const value11 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [AlertModalB2]); property3.useLayoutEffect(_fun38401, [value3, value7]); (importDefault(4571) /* metro dependency 4571: useBackPressHandler */)(function() { dismissTopAlert(); return true; }); const View2 = (ReanimatedRexport).View; object = {importantForAccessibility: value3 !== 0 ? 'no-hide-descendants' : 'auto', accessibilityElementsHidden: value3 !== 0, style: [styles.content, value11], onLayout: onLayout_38403}; const Stack = (StackNativeModule).Stack; const items2 = [header]; const Stack2 = (StackNativeModule).Stack; items2[1] = ( {title} { content != null ? ( content === '' ? null : ( {content} ) ) : null } ); items2[2] = extraContent; items2[3] = ( actions != null ? ( {actions} ) : null ); return ( {items2} ); function _fun38398() { // fn#38398, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:4824, offset: 0x010bf306, size: 74 bytes, params: 1, frame: 12 var value2; var moduleValue; if (env0_1 === 0) { value2 = environment.__proto__; moduleValue = require(4570) /* metro dependency 4570: setAccessibilityFocusAndroid */; moduleValue.setAccessibilityFocus({ref: env0_4, delay: 300}); } } function AlertModalB() { // fn#38399, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:4951, owner: AlertModal.B, offset: 0x010bf350, size: 419 bytes, params: 1, frame: 19 var r1; var r6; var r3; var object; var items2; var object2; var binding5; var binding7; var property; var value; const value2 = height - 32; const Math = global.Math; const value4 = 2 * Math.max(top, bottom); const object3 = {position: 'absolute'}; let binding = env1_23; object3.opacity = binding(ReactNativeModule.View.get(), _fun38400); binding = Module00862; object3.zIndex = 10 - binding.get(); object3.height = binding.get() > 0 ? env0_2.get() : 'auto'; object3.maxHeight = value2 - value4; if (enabled) { r1 = []; } else { object = {}; binding = env1_23; r1 = ReactNativeModule.View.get() !== 1 ? 0.7 : 1 - 0.1 * Module00862.get(); object.scale = binding(r1); items2 = [object]; object2 = {}; binding = env1_23; binding5 = ReactNativeModule.View; if (binding5.get() === 1) { binding7 = Module00862; property = [0, -20, -34][binding7.get()]; if (property != null) { r6 = property; } else { value = ReactNativeModule.View.get(); value = -12 * value; r6 = value; } r3 = r6; } else { value = Module00862.get(); value = 50 - 50 * value; r3 = value; } object2.translateY = binding(r3); items2[1] = object2; r1 = items2; } object3.transform = r1; return object3; function _fun38400(a0) { // fn#38400, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:5037, offset: 0x010bf4f3, size: 147 bytes, params: 2, frame: 13 var r0; var value2; var runOnJS; var value3; let value = a0 === true; if (value) { value = environment.__proto__; value = env1_7.get(); value = value === 0; r0 = value; } else { r0 = value; } if (r0) { value = environment.__proto__; value = env1_6.get(); value2 = environment.__proto__.__proto__; value = value === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.YEETED; r0 = value; } if (r0) { value = environment.__proto__.__proto__; value = require(4017) /* metro dependency 4017: ReanimatedRexport */; runOnJS = value.runOnJS; value3 = environment.__proto__; Reflect.apply(runOnJS, value, [env1_0])(); } } } function _fun38401() { // fn#38401, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:5691, offset: 0x010bf586, size: 25 bytes, params: 1, frame: 11 Module00862.set(env0_1); } function AlertModalOnLayout({nativeEvent}) { // fn#38403, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:5894, owner: AlertModal.onLayout, offset: 0x010bf5b0, size: 41 bytes, params: 2, frame: 11 const binding = env0_2; binding.set(nativeEvent.layout.height); } } function useSharedAnimationState() { // fn#38404, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:7297, offset: 0x010bf5d9, size: 356 bytes, params: 1, frame: 24 const value2 = env0_6.useContext(env0_15); const value3 = env0_6.useContext(env0_16); const useSharedValue = ReanimatedRexportModule.useSharedValue; const TransitionStates = (TransitionGroupModule).TransitionStates; const MOUNTED = TransitionStates.MOUNTED; const value6 = Reflect.apply(useSharedValue, ReanimatedRexportModule, [value2 !== MOUNTED ? 0 : 1]); const value7 = ReanimatedRexportModule.useSharedValue(value2); env0_6.useLayoutEffect(_fun38405, [value6, value2, value7]); const useAnimatedReaction = ReanimatedRexportModule.useAnimatedReaction; const useSharedAnimationStateN2 = useSharedAnimationStateN; useSharedAnimationStateN2.__closure = {sharedTransitionState: value7}; useSharedAnimationStateN2.__workletHash = 14603144870585; useSharedAnimationStateN2.__initData = env0_24; const useSharedAnimationStateT2 = useSharedAnimationStateT; object = {}; object.TransitionStates = TransitionStates; object.sharedVisible = value6; object.runOnJS = ReanimatedRexportModule.runOnJS; object.cleanUp = value3; useSharedAnimationStateT2.__closure = object; useSharedAnimationStateT2.__workletHash = 9486923983340; useSharedAnimationStateT2.__initData = env0_25; Reflect.apply(useAnimatedReaction, ReanimatedRexportModule, [useSharedAnimationStateN2, useSharedAnimationStateT2]); return [value7, value6]; function _fun38405() { // fn#38405, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:7499, offset: 0x010bf73d, size: 25 bytes, params: 1, frame: 11 Module00005.set(env0_0); } function useSharedAnimationStateN() { // fn#38406, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:7557, owner: useSharedAnimationState.n, offset: 0x010bf756, size: 18 bytes, params: 1, frame: 9 return Module00005.get(); } function useSharedAnimationStateT(a0) { // fn#38407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:7657, owner: useSharedAnimationState.t, offset: 0x010bf768, size: 147 bytes, params: 2, frame: 13 let value = environment.__proto__; const TransitionStates = (TransitionGroupModule).TransitionStates; const YEETED = TransitionStates.YEETED; if (a0 === YEETED) { if (env0_2.get() === 1) { env0_2.set(0); } else { value = require(4017) /* metro dependency 4017: ReanimatedRexport */; value.runOnJS(env0_1)(); } } else { env0_2.set(1); } } } function AlertActions({children}) { // fn#38408, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:7920, offset: 0x010bf7fb, size: 65 bytes, params: 2, frame: 15 const Stack = (StackNativeModule).Stack; return ( {children} ); } function AlertActionButton(a0) { // fn#38409, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4678:8005, offset: 0x010bf83c, size: 214 bytes, params: 2, frame: 20 const env0_0 = a0.onPress; const loading = a0.loading; const value = Object.create(null); value.onPress = 0; value.loading = 0; const value2 = copyDataProperties({}, a0, value, undefined); const [property, env0_1] = Module00057(env0_6.useState(false), 2); const env0_2 = env0_6.useContext(env0_18); const Button = (ButtonNativeModule).Button; const buttonProps = {...value2}; buttonProps['grow'] = true; buttonProps['loading'] = loading ?? property; buttonProps['onPress'] = _fun38410(); return