/* Metro module 1544; source: unknown; dependencies: [77, 31, 1506, 1511] */ import Module00077 from './module-00077.js'; /* Metro dependency 77 */ import Module01506 from './module-01506.js'; /* Metro dependency 1506 */ import * as ReactModule from './module-00031-React.js'; /* Metro dependency 31 */ function _fun17420(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#17420, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1671:6, offset: 0x00e6c85c, size: 136 bytes, params: 8, frame: 19 const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const Symbol = global.Symbol; const env0_4 = Symbol('VISITED_ROUTE_KEYS'); const shouldPreventRemove2 = shouldPreventRemove; exports.default = useOnPreventRemove; exports.shouldPreventRemove = shouldPreventRemove2; function shouldPreventRemove(a0, a1, a2, a3, a4) { // fn#17421, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1671:149, offset: 0x00e6c8e4, size: 365 bytes, params: 6, frame: 27 var r15; var r12; var Set; var prototype; var value5; var set; var value6; var has; var key; var value9; var value10; var call; var value11; var add; var emit; var object; var object2; var value12; var defaultPrevented; var error; const value = undefined; const env0_0 = a3.map(function(a0) { return a0.key; }); const value3 = a2.filter(_fun17423).reverse(); let property = a4[env0_4]; reducibleJoin2: while (true) { if (property != null) { r15 = property; break reducibleJoin2; } Set = global.Set; prototype = Set.prototype; value5 = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); value6 = set instanceof Object ? set : value5; r15 = value6; break reducibleJoin2; } const Object = global.Object; const value8 = Object.assign({}, a4, Module00077({}, env0_4, r15)); const iterator = value3[Symbol.iterator](); const iterator2 = iterator.next; let r1 = iterator; let item2 = Reflect.apply(iterator2, r1, []); let item = item2.value; item2 = item2.done ? undefined : r1; reducibleJoin4: while (true) { if (item2 === value) { return false; } break reducibleJoin4; } reducibleLoop4: while (true) { try { has = r15.has; } catch (error) { try { item2.return(); } catch { } throw error; } try { key = item.key; } catch (error) { try { item2.return(); } catch { } throw error; } try { value9 = Reflect.apply(has, r15, [key]); } catch (error) { try { item2.return(); } catch { } throw error; } if (value9) { r1 = item2; } else { try { key = item.key; } catch (error) { try { item2.return(); } catch { } throw error; } try { property = a1[key]; } catch (error) { try { item2.return(); } catch { } throw error; } try { value10 = property == null; } catch (error) { try { item2.return(); } catch { } throw error; } reducibleJoin19: while (true) { if (value10) { r12 = value; break reducibleJoin19; } try { call = property.call; } catch (error) { try { item2.return(); } catch { } throw error; } try { value11 = Reflect.apply(call, property, [a1, value8]); } catch (error) { try { item2.return(); } catch { } throw error; } r12 = value11; break reducibleJoin19; } if (r12) { item2.return(); return true; } try { add = r15.add; } catch (error) { try { item2.return(); } catch { } throw error; } try { key = item.key; } catch (error) { try { item2.return(); } catch { } throw error; } try { Reflect.apply(add, r15, [key]); } catch (error) { try { item2.return(); } catch { } throw error; } try { emit = a0.emit; } catch (error) { try { item2.return(); } catch { } throw error; } try { object = {}; } catch (error) { try { item2.return(); } catch { } throw error; } try { object.type = 'beforeRemove'; } catch (error) { try { item2.return(); } catch { } throw error; } try { key = item.key; } catch (error) { try { item2.return(); } catch { } throw error; } try { object.target = key; } catch (error) { try { item2.return(); } catch { } throw error; } try { object2 = {}; } catch (error) { try { item2.return(); } catch { } throw error; } try { object2.action = value8; } catch (error) { try { item2.return(); } catch { } throw error; } try { object.data = object2; } catch (error) { try { item2.return(); } catch { } throw error; } try { object.canPreventDefault = true; } catch (error) { try { item2.return(); } catch { } throw error; } try { value12 = Reflect.apply(emit, a0, [object]); } catch (error) { try { item2.return(); } catch { } throw error; } try { defaultPrevented = value12.defaultPrevented; } catch (error) { try { item2.return(); } catch { } throw error; } reducibleJoin3: while (true) { if (defaultPrevented) { item2.return(); return true; } r1 = item2; break reducibleJoin3; } } item2 = Reflect.apply(iterator2, r1, []); item = item2.value; item2 = item2.done ? undefined : r1; if (item2 === value) { return false; } continue reducibleLoop4; } function _fun17423({key}) { // fn#17423, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1671:244, offset: 0x00e6ca51, size: 30 bytes, params: 2, frame: 11 const binding = env0_0; return !binding.includes(key); } } function useOnPreventRemove({getState, emitter, beforeRemoveListeners}) { // fn#17424, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1671:586, offset: 0x00e6ca6f, size: 174 bytes, params: 2, frame: 21 const binding = addKeyedListener2; const useContext = binding.useContext; const addKeyedListener = Reflect.apply(useContext, binding, [Module01506]).addKeyedListener; var addKeyedListener2 = addKeyedListener; addKeyedListener2.useEffect(_fun17425, [addKeyedListener, beforeRemoveListeners, emitter, getState, binding.useContext(importDefault(1511) /* metro dependency 1511 */)?.key]); function _fun17425() { // fn#17425, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1671:773, offset: 0x00e6cb1d, size: 57 bytes, params: 1, frame: 16 const keyBinding = key; const value2 = undefined; if (keyBinding) { return addKeyedListener == null ? value2 : addKeyedListener('beforeRemove', key, function(a0) { return shouldPreventRemove(emitter, beforeRemoveListeners, getState().routes, [], a0); }); } return value2; } } } global.__d(_fun17420, 1544, [77, 31, 1506, 1511]) /* metro module 1544, dependencies: [77, 31, 1506, 1511] */;