/* Metro module 4553; source: unknown; dependencies: [29, 57, 31, 27, 33, 4547, 4554, 4521, 4513, 4523] */ import ObjectWithoutProperties from './module-00029-ObjectWithoutProperties.js'; /* Metro dependency 29 */ import React from './module-00031-React.js'; /* Metro dependency 31 */ import Module00057 from './module-00057.js'; /* Metro dependency 57 */ import __INTERNAL_VIEW_CONFIG from './module-04554-__INTERNAL_VIEW_CONFIG.js'; /* Metro dependency 4554 */ import * as ReactNativeModule from './module-00027-ReactNative.js'; /* Metro dependency 27 */ import * as JsxRuntimeModule from './module-00033-JsxRuntime.js'; /* Metro dependency 33 */ import * as Module04513Module from './module-04513.js'; /* Metro dependency 4513 */ import * as FreezeModule from './module-04521-Freeze.jsx'; /* Metro dependency 4521 */ import * as moduleValue2 from './module-04547.js'; /* Metro dependency 4547 */ function _fun38730(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#38730, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:6, offset: 0x010c8719, size: 271 bytes, params: 8, frame: 19 const env0_0 = require; const env0_3 = ['onWillAppear', 'onDidAppear', 'onWillDisappear', 'onDidDisappear', 'isFocused', 'freezeContents', 'icon', 'selectedIcon', 'standardAppearance', 'scrollEdgeAppearance', 'scrollEdgeEffects', 'experimental_userInterfaceStyle', 'style']; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); ReactNativeModule.Platform; const StyleSheet = ReactNativeModule.StyleSheet; const env0_11 = StyleSheet.create({fillParent: {'position': 'absolute', 'flex': 1, 'width': '100%', 'height': '100%'}}); exports.default = TabsScreen; function mapAppearanceToNativeProp(a0) { // fn#38731, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:453, offset: 0x010c8828, size: 133 bytes, params: 2, frame: 22 var stacked; var inline; var compactInline; var tabBarBackgroundColor; var tabBarShadowColor; var Object; var assign; var object; var mapItemAppearanceToNativePropBinding; if (a0) { stacked = a0.stacked; inline = a0.inline; compactInline = a0.compactInline; tabBarBackgroundColor = a0.tabBarBackgroundColor; tabBarShadowColor = a0.tabBarShadowColor; Object = global.Object; assign = Object.assign; object = {}; mapItemAppearanceToNativePropBinding = mapItemAppearanceToNativeProp; object.stacked = mapItemAppearanceToNativePropBinding(stacked); object.inline = mapItemAppearanceToNativePropBinding(inline); object.compactInline = mapItemAppearanceToNativePropBinding(compactInline); object.tabBarBackgroundColor = processColor(tabBarBackgroundColor); object.tabBarShadowColor = processColor(tabBarShadowColor); return Reflect.apply(assign, Object, [{}, a0, object]); } } function mapItemAppearanceToNativeProp(a0) { // fn#38732, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:798, offset: 0x010c88ad, size: 107 bytes, params: 2, frame: 20 var normal; var selected; var focused; var disabled; var Object; var assign; var object; var mapItemStateAppearanceToNativePropBinding; if (a0) { normal = a0.normal; selected = a0.selected; focused = a0.focused; disabled = a0.disabled; Object = global.Object; assign = Object.assign; object = {}; mapItemStateAppearanceToNativePropBinding = mapItemStateAppearanceToNativeProp; object.normal = mapItemStateAppearanceToNativePropBinding(normal); object.selected = mapItemStateAppearanceToNativePropBinding(selected); object.focused = mapItemStateAppearanceToNativePropBinding(focused); object.disabled = mapItemStateAppearanceToNativePropBinding(disabled); return Reflect.apply(assign, Object, [{}, a0, object]); } } function mapItemStateAppearanceToNativeProp(a0) { // fn#38733, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:1114, offset: 0x010c8918, size: 129 bytes, params: 2, frame: 22 var tabBarItemTitleFontColor; var tabBarItemIconColor; var tabBarItemBadgeBackgroundColor; var tabBarItemTitleFontWeight; var Object; var assign; var object; var processColorBinding; var value2; if (a0) { tabBarItemTitleFontColor = a0.tabBarItemTitleFontColor; tabBarItemIconColor = a0.tabBarItemIconColor; tabBarItemBadgeBackgroundColor = a0.tabBarItemBadgeBackgroundColor; tabBarItemTitleFontWeight = a0.tabBarItemTitleFontWeight; Object = global.Object; assign = Object.assign; object = {}; processColorBinding = processColor; value2 = undefined; object.tabBarItemTitleFontColor = processColorBinding(tabBarItemTitleFontColor); object.tabBarItemIconColor = processColor(tabBarItemIconColor); object.tabBarItemBadgeBackgroundColor = processColor(tabBarItemBadgeBackgroundColor); object.tabBarItemTitleFontWeight = value2 === tabBarItemTitleFontWeight ? value2 : global.String(tabBarItemTitleFontWeight); return Reflect.apply(assign, Object, [{}, a0, object]); } } function TabsScreen(a0) { // fn#38734, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:1470, offset: 0x010c8999, size: 886 bytes, params: 2, frame: 47 var object3; var r13; var controlledBottomTabs; var value11; let binding = onDidDisappear2; const value2 = binding.useRef(null); const value3 = -1; const value4 = binding.useRef(value3); binding.useEffect(_fun38735, []); const value5 = false; const value6 = binding.useState(value5); const value7 = undefined; const value8 = Module00057(value6, 2); const property = value8[0]; const env0_2 = value8[1]; const onWillAppear = a0.onWillAppear; const onWillAppear2 = onWillAppear; const onDidAppear = a0.onDidAppear; const onDidAppear2 = onDidAppear; const onWillDisappear = a0.onWillDisappear; const onDidDisappear = a0.onDidDisappear; var onDidDisappear2 = onDidDisappear; const isFocused = a0.isFocused; const r4 = value7 !== isFocused && isFocused; const freezeContents = a0.freezeContents; const icon = a0.icon; a0.selectedIcon; const standardAppearance = a0.standardAppearance; const scrollEdgeAppearance = a0.scrollEdgeAppearance; const scrollEdgeEffects = a0.scrollEdgeEffects; const experimental_userInterfaceStyle = a0.experimental_userInterfaceStyle; const style = a0.style; const value10 = onDidAppear2(a0, onWillAppear2); if (Module04513Module.freezeEnabled()) { if (value7 !== freezeContents) { r13 = freezeContents; } else { controlledBottomTabs = (require(4523) /* metro dependency 4523 */).featureFlags.experiment.controlledBottomTabs; value11 = !property; r13 = controlledBottomTabs ? property ? value11 : !r4 : value11; } } else { r13 = value5; } binding = onDidDisappear2; const value13 = binding.useCallback(_fun38736, [onWillAppear]); const value14 = binding.useCallback(_fun38737, [onDidAppear]); const value15 = binding.useCallback(_fun38738, [onWillDisappear]); const value16 = binding.useCallback(_fun38739, [onDidDisappear]); moduleValue2.bottomTabsDebugLog('TabsScreen [' + (value4.current ?? value3) + '] render; tabKey: ' + value10.tabKey + ' shouldFreeze: ' + r13 + ', isFocused: ' + r4 + ' nativeViewIsVisible: ' + property); const iconsToNativeProps = parseIconsToNativeProps(icon); const defaultImport = __INTERNAL_VIEW_CONFIG; const Object = global.Object; const assign = Object.assign; object3 = {collapsable: value5}; object3.style = [style, env0_11.fillParent]; object3.onWillAppear = value13; object3.onDidAppear = value14; object3.onWillDisappear = value15; object3.onDidDisappear = value16; object3.isFocused = r4; const object = {}; const mapAppearanceToNativePropBinding = mapAppearanceToNativeProp; object.standardAppearance = mapAppearanceToNativePropBinding(standardAppearance); object.scrollEdgeAppearance = mapAppearanceToNativePropBinding(scrollEdgeAppearance); object.ref = value2; object.bottomScrollEdgeEffect = scrollEdgeEffects == null ? value7 : scrollEdgeEffects.bottom; object.leftScrollEdgeEffect = scrollEdgeEffects == null ? value7 : scrollEdgeEffects.left; object.rightScrollEdgeEffect = scrollEdgeEffects == null ? value7 : scrollEdgeEffects.right; object.topScrollEdgeEffect = scrollEdgeEffects == null ? value7 : scrollEdgeEffects.top; object.isTitleUndefined = value10.title === null || value7 === value10.title; object.userInterfaceStyle = experimental_userInterfaceStyle; const object2 = {}; const Freeze = (FreezeModule).Freeze; object2.children = ( {value10.children} ); return ((Component) => )(defaultImport); function _fun38735() { // fn#38735, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:1544, offset: 0x010c8d0f, size: 89 bytes, params: 1, frame: 13 var binding; var value2; if (env0_0.current != null) { binding = env0_1; value2 = environment.__proto__; binding.current = findNodeHandle(env0_0.current) ?? -1; } else { env0_1.current = -1; } } function _fun38736(a0) { // fn#38736, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:2150, offset: 0x010c8d68, size: 114 bytes, params: 2, frame: 17 let value = environment.__proto__; value = require(4547) /* metro dependency 4547 */; value.bottomTabsDebugLog('TabsScreen [' + env0_1.current + '] onWillAppear received'); env0_2(true); if (onWillAppear != null) { onWillAppear(a0); } } function _fun38737(a0) { // fn#38737, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:2284, offset: 0x010c8dda, size: 103 bytes, params: 2, frame: 17 let value = environment.__proto__; value = require(4547) /* metro dependency 4547 */; value.bottomTabsDebugLog('TabsScreen [' + env0_1.current + '] onDidAppear received'); if (onDidAppear != null) { onDidAppear(a0); } } function _fun38738(a0) { // fn#38738, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:2411, offset: 0x010c8e41, size: 103 bytes, params: 2, frame: 17 let value = environment.__proto__; value = require(4547) /* metro dependency 4547 */; value.bottomTabsDebugLog('TabsScreen [' + env0_1.current + '] onWillDisappear received'); if (onWillDisappear != null) { onWillDisappear(a0); } } function _fun38739(a0) { // fn#38739, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:2542, offset: 0x010c8ea8, size: 114 bytes, params: 2, frame: 17 let value = environment.__proto__; value = require(4547) /* metro dependency 4547 */; value.bottomTabsDebugLog('TabsScreen [' + env0_1.current + '] onDidDisappear received'); env0_2(false); if (onDidDisappear != null) { onDidDisappear(a0); } } function parseIconsToNativeProps(a0, a1) { // fn#38740, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4731:2828, owner: TabsScreen.parseIconsToNativeProps, offset: 0x010c8f1a, size: 221 bytes, params: 3, frame: 15 var type; var value2; var assetSource; const value = undefined; const r0 = (a0 == null ? value : a0.android) || (a0 == null ? value : a0.shared); if (r0) { type = r0.type; if (type === 'imageSource') { value2 = environment.__proto__; assetSource = Image.resolveAssetSource(r0.imageSource); if (!assetSource) { global.console.error('[RNScreens] failed to resolve an asset for bottom tab icon'); } return global.Object.assign({}, {imageIconResource: assetSource || value}); } type = r0.type; if (type === 'drawableResource') { return global.Object.assign({}, {drawableIconResourceName: r0.name}); } throw new global.Error('[RNScreens] Incorrect icon format for Android. You must provide `imageSource` or `drawableResource`.'); } const Object = global.Object; return Object.assign({}, {}); } } } global.__d(_fun38730, 4553, [29, 57, 31, 27, 33, 4547, 4554, 4521, 4513, 4523]) /* metro module 4553, dependencies: [29, 57, 31, 27, 33, 4547, 4554, 4521, 4513, 4523] */;