/* Metro module 8812; source: design/components/ContextMenu/native/ContextMenuState.native.tsx; dependencies: [31, 629, 690, 4017, 4081, 2] */ function _fun68896(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:6, offset: 0x01c611b8, size: 277 bytes, params: 8, frame: 20 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_2 = importAll(31) /* metro dependency 31 */; let value = require(629) /* metro dependency 629 */; value = value.create(function() { return {menu: null}; }); object = {code: 'function updateContextMenuState_ContextMenuStateNativeTsx1(absoluteX,absoluteY,state){const{INDEX_BOUNDS_WIDTH_OFFSET,INDEX_BOUNDS_HEIGHT_OFFSET,INDEX_BOUNDS_PAGE_Y_OFFSET,INDEX_BOUNDS_PAGE_X_OFFSET,INDEX_BOUNDS_OFFSET,runOnJS,triggerHapticFeedback,HapticFeedbackTypes}=this.__closure;const{pan:pan,itemMeasurements:itemMeasurements,activeIndex:activeIndex}=state;pan.set(absoluteY);const bounds=itemMeasurements.get();let offset=0;while(offset=lowerY&&absoluteY<=upperY&&absoluteX>=lowerX&&absoluteX<=upperX){const index=offset/INDEX_BOUNDS_OFFSET;if(activeIndex.get()!==index){activeIndex.set(index);runOnJS(triggerHapticFeedback)(HapticFeedbackTypes.IMPACT_LIGHT);}return;}offset+=INDEX_BOUNDS_OFFSET;}activeIndex.set(-1);}'}; const value2 = _fun68898(); (require(2) /* metro dependency 2 */).fileFinishedImporting('design/components/ContextMenu/native/ContextMenuState.native.tsx'); exports.INDEX_BOUNDS_OFFSET = 4; exports.INDEX_BOUNDS_PAGE_X_OFFSET = 0; exports.INDEX_BOUNDS_PAGE_Y_OFFSET = 1; exports.INDEX_BOUNDS_WIDTH_OFFSET = 2; exports.INDEX_BOUNDS_HEIGHT_OFFSET = 3; exports.ContextMenuStore = value; exports.showContextMenu = showContextMenu; exports.hideContextMenu = hideContextMenu; exports.useActiveContextMenu = useActiveContextMenu; exports.updateContextMenuState = value2; exports.useContextMenuState = useContextMenuState; exports.resetContextMenuState = function({activeIndex, pan, itemMeasurements}) { activeIndex.set(-1); pan.set(-1); if (itemMeasurements.get().length > 0) { itemMeasurements.set([]); } }; } function _fun68898() { // fn#68898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:1226, offset: 0x01c612d8, size: 134 bytes, params: 1, frame: 16 const closure = updateContextMenuState; const object2 = {'INDEX_BOUNDS_WIDTH_OFFSET': 2, 'INDEX_BOUNDS_HEIGHT_OFFSET': 3, 'INDEX_BOUNDS_PAGE_Y_OFFSET': 1, 'INDEX_BOUNDS_PAGE_X_OFFSET': 0, 'INDEX_BOUNDS_OFFSET': 4}; object2.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS; object2.triggerHapticFeedback = (require(4081) /* metro dependency 4081: HapticUtilsNative */).triggerHapticFeedback; const HapticFeedbackTypes = (require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes; object2.HapticFeedbackTypes = HapticFeedbackTypes; closure.__closure = object2; closure.__workletHash = 10158111154044; closure.__initData = env0_4; return closure; } function showContextMenu(a0) { // fn#68900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2296, offset: 0x01c6146f, size: 54 bytes, params: 2, frame: 12 const env0_0 = a0; (require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun68901); } function hideContextMenu() { // fn#68902, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2392, offset: 0x01c614c7, size: 47 bytes, params: 1, frame: 12 (require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun68903); } function useActiveContextMenu() { // fn#68905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2517, offset: 0x01c61530, size: 25 bytes, params: 1, frame: 11 return env0_3(function(a0) { return a0.menu; }); } function useContextMenuState() { // fn#68907, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2621, offset: 0x01c61554, size: 140 bytes, params: 1, frame: 20 const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(-1); const value3 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue([]); const value4 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(-1); return value4.useMemo(_fun68908, [value2, value3, value4]); } function updateContextMenuState(a0, a1, {pan, itemMeasurements, activeIndex}) { // fn#68899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:1264, offset: 0x01c6135e, size: 273 bytes, params: 4, frame: 24 var r3; var property; var property2; var property3; var property4; var value3; var runOnJS; var triggerHapticFeedback; var HapticFeedbackTypes; var IMPACT_LIGHT; pan.set(a1); let value = itemMeasurements.get(); let length = value.length; if (0 < length) { r3 = 0; reducibleLoop1: while (true) { property = value[r3 + 2]; property2 = value[r3 + 3]; property3 = value[r3 + 1]; property4 = value[r3 + 0]; if (a1 >= property3) { reducibleJoin5: while (true) { if (a1 <= property3 + property2) { if (a0 >= property4) { if (a0 <= property4 + property) { break reducibleLoop1; } break reducibleJoin5; } break reducibleJoin5; } break reducibleJoin5; } } value3 = r3 + 4; length = value.length; if (!(value3 < length)) { activeIndex.set(-1); return undefined; } r3 = value3; continue reducibleLoop1; } value = r3 / 4; reducibleJoin9: while (true) { if (activeIndex.get() !== value) { activeIndex.set(value); value = environment.__proto__; value = require(4017) /* metro dependency 4017: ReanimatedRexport */; runOnJS = value.runOnJS; triggerHapticFeedback = (require(4081) /* metro dependency 4081: HapticUtilsNative */).triggerHapticFeedback; value = Reflect.apply(runOnJS, value, [triggerHapticFeedback]); HapticFeedbackTypes = (require(4081) /* metro dependency 4081: HapticUtilsNative */).HapticFeedbackTypes; IMPACT_LIGHT = HapticFeedbackTypes.IMPACT_LIGHT; value(IMPACT_LIGHT); break reducibleJoin9; } break reducibleJoin9; } } else { activeIndex.set(-1); } } function _fun68901() { // fn#68901, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2346, offset: 0x01c614a5, size: 34 bytes, params: 1, frame: 12 return env1_3.setState({menu: env0_0}); } function _fun68903() { // fn#68903, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2441, offset: 0x01c614f6, size: 31 bytes, params: 1, frame: 11 var environment; let value = environment.__proto__; env1_3.setState(function(a0) { var value = a0; return value.menu == null ? value : {menu: null}; }); } function _fun68908() { // fn#68908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8997:2761, offset: 0x01c615e0, size: 34 bytes, params: 1, frame: 3 return {pan: env0_0, itemMeasurements: env0_1, activeIndex: env0_2}; }