@react-navigation/bottom-tabs 6.4.3 → 6.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/commonjs/index.js +0 -7
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createBottomTabNavigator.js +1 -17
  4. package/lib/commonjs/navigators/createBottomTabNavigator.js.map +1 -1
  5. package/lib/commonjs/types.js.map +1 -1
  6. package/lib/commonjs/utils/BottomTabBarHeightCallbackContext.js +0 -5
  7. package/lib/commonjs/utils/BottomTabBarHeightCallbackContext.js.map +1 -1
  8. package/lib/commonjs/utils/BottomTabBarHeightContext.js +0 -5
  9. package/lib/commonjs/utils/BottomTabBarHeightContext.js.map +1 -1
  10. package/lib/commonjs/utils/useBottomTabBarHeight.js +2 -10
  11. package/lib/commonjs/utils/useBottomTabBarHeight.js.map +1 -1
  12. package/lib/commonjs/utils/useIsKeyboardShown.js +0 -9
  13. package/lib/commonjs/utils/useIsKeyboardShown.js.map +1 -1
  14. package/lib/commonjs/views/Badge.js +2 -16
  15. package/lib/commonjs/views/Badge.js.map +1 -1
  16. package/lib/commonjs/views/BottomTabBar.js +5 -51
  17. package/lib/commonjs/views/BottomTabBar.js.map +1 -1
  18. package/lib/commonjs/views/BottomTabItem.js +9 -21
  19. package/lib/commonjs/views/BottomTabItem.js.map +1 -1
  20. package/lib/commonjs/views/BottomTabView.js +15 -39
  21. package/lib/commonjs/views/BottomTabView.js.map +1 -1
  22. package/lib/commonjs/views/ScreenFallback.js +2 -18
  23. package/lib/commonjs/views/ScreenFallback.js.map +1 -1
  24. package/lib/commonjs/views/TabBarIcon.js +3 -8
  25. package/lib/commonjs/views/TabBarIcon.js.map +1 -1
  26. package/lib/module/index.js +3 -2
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/navigators/createBottomTabNavigator.js +1 -9
  29. package/lib/module/navigators/createBottomTabNavigator.js.map +1 -1
  30. package/lib/module/types.js.map +1 -1
  31. package/lib/module/utils/BottomTabBarHeightCallbackContext.js.map +1 -1
  32. package/lib/module/utils/BottomTabBarHeightContext.js.map +1 -1
  33. package/lib/module/utils/useBottomTabBarHeight.js +1 -3
  34. package/lib/module/utils/useBottomTabBarHeight.js.map +1 -1
  35. package/lib/module/utils/useIsKeyboardShown.js +0 -4
  36. package/lib/module/utils/useIsKeyboardShown.js.map +1 -1
  37. package/lib/module/views/Badge.js +2 -6
  38. package/lib/module/views/Badge.js.map +1 -1
  39. package/lib/module/views/BottomTabBar.js +5 -29
  40. package/lib/module/views/BottomTabBar.js.map +1 -1
  41. package/lib/module/views/BottomTabItem.js +9 -13
  42. package/lib/module/views/BottomTabItem.js.map +1 -1
  43. package/lib/module/views/BottomTabView.js +15 -26
  44. package/lib/module/views/BottomTabView.js.map +1 -1
  45. package/lib/module/views/ScreenFallback.js +2 -10
  46. package/lib/module/views/ScreenFallback.js.map +1 -1
  47. package/lib/module/views/TabBarIcon.js +3 -2
  48. package/lib/module/views/TabBarIcon.js.map +1 -1
  49. package/lib/typescript/src/index.d.ts +1 -0
  50. package/lib/typescript/src/index.d.ts.map +1 -0
  51. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +1 -0
  52. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts.map +1 -0
  53. package/lib/typescript/src/types.d.ts +3 -1
  54. package/lib/typescript/src/types.d.ts.map +1 -0
  55. package/lib/typescript/src/utils/BottomTabBarHeightCallbackContext.d.ts +1 -0
  56. package/lib/typescript/src/utils/BottomTabBarHeightCallbackContext.d.ts.map +1 -0
  57. package/lib/typescript/src/utils/BottomTabBarHeightContext.d.ts +1 -0
  58. package/lib/typescript/src/utils/BottomTabBarHeightContext.d.ts.map +1 -0
  59. package/lib/typescript/src/utils/useBottomTabBarHeight.d.ts +2 -1
  60. package/lib/typescript/src/utils/useBottomTabBarHeight.d.ts.map +1 -0
  61. package/lib/typescript/src/utils/useIsKeyboardShown.d.ts +1 -0
  62. package/lib/typescript/src/utils/useIsKeyboardShown.d.ts.map +1 -0
  63. package/lib/typescript/src/views/Badge.d.ts +1 -0
  64. package/lib/typescript/src/views/Badge.d.ts.map +1 -0
  65. package/lib/typescript/src/views/BottomTabBar.d.ts +1 -0
  66. package/lib/typescript/src/views/BottomTabBar.d.ts.map +1 -0
  67. package/lib/typescript/src/views/BottomTabItem.d.ts +8 -2
  68. package/lib/typescript/src/views/BottomTabItem.d.ts.map +1 -0
  69. package/lib/typescript/src/views/BottomTabView.d.ts +1 -0
  70. package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -0
  71. package/lib/typescript/src/views/ScreenFallback.d.ts +1 -0
  72. package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -0
  73. package/lib/typescript/src/views/TabBarIcon.d.ts +1 -0
  74. package/lib/typescript/src/views/TabBarIcon.d.ts.map +1 -0
  75. package/package.json +5 -5
  76. package/src/types.tsx +2 -1
  77. package/src/utils/useBottomTabBarHeight.tsx +1 -1
  78. package/src/views/BottomTabBar.tsx +1 -0
  79. package/src/views/BottomTabItem.tsx +20 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Link","useTheme","Color","React","Platform","Pressable","StyleSheet","Text","TabBarIcon","BottomTabBarItem","focused","route","label","icon","badge","badgeStyle","to","button","children","style","onPress","accessibilityRole","rest","OS","styles","e","metaKey","altKey","ctrlKey","shiftKey","preventDefault","accessibilityLabel","testID","onLongPress","horizontal","activeTintColor","customActiveTintColor","inactiveTintColor","customInactiveTintColor","activeBackgroundColor","inactiveBackgroundColor","showLabel","allowFontScaling","labelStyle","iconStyle","colors","undefined","primary","text","mix","card","hex","renderLabel","color","labelBeside","labelBeneath","position","renderIcon","activeOpacity","inactiveOpacity","scene","backgroundColor","select","ios","default","accessibilityState","selected","accessibilityStates","tab","tabLandscape","tabPortrait","create","flex","alignItems","justifyContent","flexDirection","textAlign","fontSize","marginLeft","marginTop","display"],"sources":["BottomTabItem.tsx"],"sourcesContent":["import { Link, Route, useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport React from 'react';\nimport {\n GestureResponderEvent,\n Platform,\n Pressable,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n ViewStyle,\n} from 'react-native';\n\nimport type { BottomTabBarButtonProps, LabelPosition } from '../types';\nimport TabBarIcon from './TabBarIcon';\n\ntype Props = {\n /**\n * Whether the tab is focused.\n */\n focused: boolean;\n /**\n * The route object which should be specified by the tab.\n */\n route: Route<string>;\n /**\n * The label text of the tab.\n */\n label:\n | string\n | ((props: {\n focused: boolean;\n color: string;\n position: LabelPosition;\n }) => React.ReactNode);\n /**\n * Icon to display for the tab.\n */\n icon: (props: {\n focused: boolean;\n size: number;\n color: string;\n }) => React.ReactNode;\n /**\n * Text to show in a badge on the tab icon.\n */\n badge?: number | string;\n /**\n * Custom style for the badge.\n */\n badgeStyle?: StyleProp<TextStyle>;\n /**\n * URL to use for the link to the tab.\n */\n to?: string;\n /**\n * The button for the tab. Uses a `TouchableWithoutFeedback` by default.\n */\n button?: (props: BottomTabBarButtonProps) => React.ReactNode;\n /**\n * The accessibility label for the tab.\n */\n accessibilityLabel?: string;\n /**\n * An unique ID for testing for the tab.\n */\n testID?: string;\n /**\n * Function to execute on press in React Native.\n * On the web, this will use onClick.\n */\n onPress: (\n e: React.MouseEvent<HTMLElement, MouseEvent> | GestureResponderEvent\n ) => void;\n /**\n * Function to execute on long press.\n */\n onLongPress: (e: GestureResponderEvent) => void;\n /**\n * Whether the label should be aligned with the icon horizontally.\n */\n horizontal: boolean;\n /**\n * Color for the icon and label when the item is active.\n */\n activeTintColor?: string;\n /**\n * Color for the icon and label when the item is inactive.\n */\n inactiveTintColor?: string;\n /**\n * Background color for item when its active.\n */\n activeBackgroundColor?: string;\n /**\n * Background color for item when its inactive.\n */\n inactiveBackgroundColor?: string;\n /**\n * Whether to show the label text for the tab.\n */\n showLabel?: boolean;\n /**\n * Whether to allow scaling the font for the label for accessibility purposes.\n */\n allowFontScaling?: boolean;\n /**\n * Style object for the label element.\n */\n labelStyle?: StyleProp<TextStyle>;\n /**\n * Style object for the icon element.\n */\n iconStyle?: StyleProp<ViewStyle>;\n /**\n * Style object for the wrapper element.\n */\n style?: StyleProp<ViewStyle>;\n};\n\nexport default function BottomTabBarItem({\n focused,\n route,\n label,\n icon,\n badge,\n badgeStyle,\n to,\n button = ({\n children,\n style,\n onPress,\n to,\n accessibilityRole,\n ...rest\n }: BottomTabBarButtonProps) => {\n if (Platform.OS === 'web' && to) {\n // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.\n // We need to use `onClick` to be able to prevent default browser handling of links.\n return (\n <Link\n {...rest}\n to={to}\n style={[styles.button, style]}\n onPress={(e: any) => {\n if (\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n (e.button == null || e.button === 0) // ignore everything but left clicks\n ) {\n e.preventDefault();\n onPress?.(e);\n }\n }}\n >\n {children}\n </Link>\n );\n } else {\n return (\n <Pressable\n {...rest}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n style={style}\n >\n {children}\n </Pressable>\n );\n }\n },\n accessibilityLabel,\n testID,\n onPress,\n onLongPress,\n horizontal,\n activeTintColor: customActiveTintColor,\n inactiveTintColor: customInactiveTintColor,\n activeBackgroundColor = 'transparent',\n inactiveBackgroundColor = 'transparent',\n showLabel = true,\n allowFontScaling,\n labelStyle,\n iconStyle,\n style,\n}: Props) {\n const { colors } = useTheme();\n\n const activeTintColor =\n customActiveTintColor === undefined\n ? colors.primary\n : customActiveTintColor;\n\n const inactiveTintColor =\n customInactiveTintColor === undefined\n ? Color(colors.text).mix(Color(colors.card), 0.5).hex()\n : customInactiveTintColor;\n\n const renderLabel = ({ focused }: { focused: boolean }) => {\n if (showLabel === false) {\n return null;\n }\n\n const color = focused ? activeTintColor : inactiveTintColor;\n\n if (typeof label === 'string') {\n return (\n <Text\n numberOfLines={1}\n style={[\n styles.label,\n { color },\n horizontal ? styles.labelBeside : styles.labelBeneath,\n labelStyle,\n ]}\n allowFontScaling={allowFontScaling}\n >\n {label}\n </Text>\n );\n }\n\n return label({\n focused,\n color,\n position: horizontal ? 'beside-icon' : 'below-icon',\n });\n };\n\n const renderIcon = ({ focused }: { focused: boolean }) => {\n if (icon === undefined) {\n return null;\n }\n\n const activeOpacity = focused ? 1 : 0;\n const inactiveOpacity = focused ? 0 : 1;\n\n return (\n <TabBarIcon\n route={route}\n horizontal={horizontal}\n badge={badge}\n badgeStyle={badgeStyle}\n activeOpacity={activeOpacity}\n inactiveOpacity={inactiveOpacity}\n activeTintColor={activeTintColor}\n inactiveTintColor={inactiveTintColor}\n renderIcon={icon}\n style={iconStyle}\n />\n );\n };\n\n const scene = { route, focused };\n\n const backgroundColor = focused\n ? activeBackgroundColor\n : inactiveBackgroundColor;\n\n return button({\n to,\n onPress,\n onLongPress,\n testID,\n accessibilityLabel,\n // FIXME: accessibilityRole: 'tab' doesn't seem to work as expected on iOS\n accessibilityRole: Platform.select({ ios: 'button', default: 'tab' }),\n accessibilityState: { selected: focused },\n // @ts-expect-error: keep for compatibility with older React Native versions\n accessibilityStates: focused ? ['selected'] : [],\n style: [\n styles.tab,\n { backgroundColor },\n horizontal ? styles.tabLandscape : styles.tabPortrait,\n style,\n ],\n children: (\n <React.Fragment>\n {renderIcon(scene)}\n {renderLabel(scene)}\n </React.Fragment>\n ),\n }) as React.ReactElement;\n}\n\nconst styles = StyleSheet.create({\n tab: {\n flex: 1,\n alignItems: 'center',\n },\n tabPortrait: {\n justifyContent: 'flex-end',\n flexDirection: 'column',\n },\n tabLandscape: {\n justifyContent: 'center',\n flexDirection: 'row',\n },\n label: {\n textAlign: 'center',\n backgroundColor: 'transparent',\n },\n labelBeneath: {\n fontSize: 10,\n },\n labelBeside: {\n fontSize: 13,\n marginLeft: 20,\n marginTop: 3,\n },\n button: {\n display: 'flex',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["Link","useTheme","Color","React","Platform","Pressable","StyleSheet","Text","TabBarIcon","BottomTabBarItem","focused","route","descriptor","label","icon","badge","badgeStyle","to","button","children","style","onPress","accessibilityRole","rest","OS","styles","e","metaKey","altKey","ctrlKey","shiftKey","preventDefault","accessibilityLabel","testID","onLongPress","horizontal","activeTintColor","customActiveTintColor","inactiveTintColor","customInactiveTintColor","activeBackgroundColor","inactiveBackgroundColor","showLabel","allowFontScaling","labelStyle","iconStyle","colors","undefined","primary","text","mix","card","hex","renderLabel","color","labelBeside","labelBeneath","options","tabBarLabel","title","name","position","renderIcon","activeOpacity","inactiveOpacity","scene","backgroundColor","select","ios","default","accessibilityState","selected","accessibilityStates","tab","tabLandscape","tabPortrait","create","flex","alignItems","justifyContent","flexDirection","textAlign","fontSize","marginLeft","marginTop","display"],"sourceRoot":"../../src","sources":["BottomTabItem.tsx"],"mappings":";AAAA,SAASA,IAAI,EAASC,QAAQ,QAAQ,0BAA0B;AAChE,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,OAAO;AACzB,SAEEC,QAAQ,EACRC,SAAS,EAETC,UAAU,EACVC,IAAI,QAGC,cAAc;AAOrB,OAAOC,UAAU,MAAM,cAAc;AA+GrC,eAAe,SAASC,gBAAgB,OAiE9B;EAAA,IAjE+B;IACvCC,OAAO;IACPC,KAAK;IACLC,UAAU;IACVC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,UAAU;IACVC,EAAE;IACFC,MAAM,GAAG,SAOsB;MAAA,IAPrB;QACRC,QAAQ;QACRC,KAAK;QACLC,OAAO;QACPJ,EAAE;QACFK,iBAAiB;QACjB,GAAGC;MACoB,CAAC;MACxB,IAAInB,QAAQ,CAACoB,EAAE,KAAK,KAAK,IAAIP,EAAE,EAAE;QAC/B;QACA;QACA,oBACE,oBAAC,IAAI,eACCM,IAAI;UACR,EAAE,EAAEN,EAAG;UACP,KAAK,EAAE,CAACQ,MAAM,CAACP,MAAM,EAAEE,KAAK,CAAE;UAC9B,OAAO,EAAGM,CAAM,IAAK;YACnB,IACE,EAAEA,CAAC,CAACC,OAAO,IAAID,CAAC,CAACE,MAAM,IAAIF,CAAC,CAACG,OAAO,IAAIH,CAAC,CAACI,QAAQ,CAAC;YAAI;YACtDJ,CAAC,CAACR,MAAM,IAAI,IAAI,IAAIQ,CAAC,CAACR,MAAM,KAAK,CAAC,CAAC,CAAC;YAAA,EACrC;cACAQ,CAAC,CAACK,cAAc,EAAE;cAClBV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGK,CAAC,CAAC;YACd;UACF;QAAE,IAEDP,QAAQ,CACJ;MAEX,CAAC,MAAM;QACL,oBACE,oBAAC,SAAS,eACJI,IAAI;UACR,iBAAiB,EAAED,iBAAkB;UACrC,OAAO,EAAED,OAAQ;UACjB,KAAK,EAAED;QAAM,IAEZD,QAAQ,CACC;MAEhB;IACF,CAAC;IACDa,kBAAkB;IAClBC,MAAM;IACNZ,OAAO;IACPa,WAAW;IACXC,UAAU;IACVC,eAAe,EAAEC,qBAAqB;IACtCC,iBAAiB,EAAEC,uBAAuB;IAC1CC,qBAAqB,GAAG,aAAa;IACrCC,uBAAuB,GAAG,aAAa;IACvCC,SAAS,GAAG,IAAI;IAChBC,gBAAgB;IAChBC,UAAU;IACVC,SAAS;IACTzB;EACK,CAAC;EACN,MAAM;IAAE0B;EAAO,CAAC,GAAG7C,QAAQ,EAAE;EAE7B,MAAMmC,eAAe,GACnBC,qBAAqB,KAAKU,SAAS,GAC/BD,MAAM,CAACE,OAAO,GACdX,qBAAqB;EAE3B,MAAMC,iBAAiB,GACrBC,uBAAuB,KAAKQ,SAAS,GACjC7C,KAAK,CAAC4C,MAAM,CAACG,IAAI,CAAC,CAACC,GAAG,CAAChD,KAAK,CAAC4C,MAAM,CAACK,IAAI,CAAC,EAAE,GAAG,CAAC,CAACC,GAAG,EAAE,GACrDb,uBAAuB;EAE7B,MAAMc,WAAW,GAAG,SAAuC;IAAA,IAAtC;MAAE3C;IAA8B,CAAC;IACpD,IAAIgC,SAAS,KAAK,KAAK,EAAE;MACvB,OAAO,IAAI;IACb;IAEA,MAAMY,KAAK,GAAG5C,OAAO,GAAG0B,eAAe,GAAGE,iBAAiB;IAE3D,IAAI,OAAOzB,KAAK,KAAK,QAAQ,EAAE;MAC7B,oBACE,oBAAC,IAAI;QACH,aAAa,EAAE,CAAE;QACjB,KAAK,EAAE,CACLY,MAAM,CAACZ,KAAK,EACZ;UAAEyC;QAAM,CAAC,EACTnB,UAAU,GAAGV,MAAM,CAAC8B,WAAW,GAAG9B,MAAM,CAAC+B,YAAY,EACrDZ,UAAU,CACV;QACF,gBAAgB,EAAED;MAAiB,GAElC9B,KAAK,CACD;IAEX;IAEA,MAAM;MAAE4C;IAAQ,CAAC,GAAG7C,UAAU;IAC9B,MAAMO,QAAQ,GACZ,OAAOsC,OAAO,CAACC,WAAW,KAAK,QAAQ,GACnCD,OAAO,CAACC,WAAW,GACnBD,OAAO,CAACE,KAAK,KAAKZ,SAAS,GAC3BU,OAAO,CAACE,KAAK,GACbhD,KAAK,CAACiD,IAAI;IAEhB,OAAO/C,KAAK,CAAC;MACXH,OAAO;MACP4C,KAAK;MACLO,QAAQ,EAAE1B,UAAU,GAAG,aAAa,GAAG,YAAY;MACnDhB;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAM2C,UAAU,GAAG,SAAuC;IAAA,IAAtC;MAAEpD;IAA8B,CAAC;IACnD,IAAII,IAAI,KAAKiC,SAAS,EAAE;MACtB,OAAO,IAAI;IACb;IAEA,MAAMgB,aAAa,GAAGrD,OAAO,GAAG,CAAC,GAAG,CAAC;IACrC,MAAMsD,eAAe,GAAGtD,OAAO,GAAG,CAAC,GAAG,CAAC;IAEvC,oBACE,oBAAC,UAAU;MACT,KAAK,EAAEC,KAAM;MACb,UAAU,EAAEwB,UAAW;MACvB,KAAK,EAAEpB,KAAM;MACb,UAAU,EAAEC,UAAW;MACvB,aAAa,EAAE+C,aAAc;MAC7B,eAAe,EAAEC,eAAgB;MACjC,eAAe,EAAE5B,eAAgB;MACjC,iBAAiB,EAAEE,iBAAkB;MACrC,UAAU,EAAExB,IAAK;MACjB,KAAK,EAAE+B;IAAU,EACjB;EAEN,CAAC;EAED,MAAMoB,KAAK,GAAG;IAAEtD,KAAK;IAAED;EAAQ,CAAC;EAEhC,MAAMwD,eAAe,GAAGxD,OAAO,GAC3B8B,qBAAqB,GACrBC,uBAAuB;EAE3B,OAAOvB,MAAM,CAAC;IACZD,EAAE;IACFI,OAAO;IACPa,WAAW;IACXD,MAAM;IACND,kBAAkB;IAClB;IACAV,iBAAiB,EAAElB,QAAQ,CAAC+D,MAAM,CAAC;MAAEC,GAAG,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAM,CAAC,CAAC;IACrEC,kBAAkB,EAAE;MAAEC,QAAQ,EAAE7D;IAAQ,CAAC;IACzC;IACA8D,mBAAmB,EAAE9D,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE;IAChDU,KAAK,EAAE,CACLK,MAAM,CAACgD,GAAG,EACV;MAAEP;IAAgB,CAAC,EACnB/B,UAAU,GAAGV,MAAM,CAACiD,YAAY,GAAGjD,MAAM,CAACkD,WAAW,EACrDvD,KAAK,CACN;IACDD,QAAQ,eACN,oBAAC,KAAK,CAAC,QAAQ,QACZ2C,UAAU,CAACG,KAAK,CAAC,EACjBZ,WAAW,CAACY,KAAK,CAAC;EAGzB,CAAC,CAAC;AACJ;AAEA,MAAMxC,MAAM,GAAGnB,UAAU,CAACsE,MAAM,CAAC;EAC/BH,GAAG,EAAE;IACHI,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd,CAAC;EACDH,WAAW,EAAE;IACXI,cAAc,EAAE,UAAU;IAC1BC,aAAa,EAAE;EACjB,CAAC;EACDN,YAAY,EAAE;IACZK,cAAc,EAAE,QAAQ;IACxBC,aAAa,EAAE;EACjB,CAAC;EACDnE,KAAK,EAAE;IACLoE,SAAS,EAAE,QAAQ;IACnBf,eAAe,EAAE;EACnB,CAAC;EACDV,YAAY,EAAE;IACZ0B,QAAQ,EAAE;EACZ,CAAC;EACD3B,WAAW,EAAE;IACX2B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,EAAE;IACdC,SAAS,EAAE;EACb,CAAC;EACDlE,MAAM,EAAE;IACNmE,OAAO,EAAE;EACX;AACF,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
2
  import { getHeaderTitle, Header, SafeAreaProviderCompat, Screen } from '@react-navigation/elements';
4
3
  import * as React from 'react';
5
4
  import { Platform, StyleSheet } from 'react-native';
@@ -20,11 +19,9 @@ export default function BottomTabView(props) {
20
19
  } = props;
21
20
  const focusedRouteKey = state.routes[state.index].key;
22
21
  const [loaded, setLoaded] = React.useState([focusedRouteKey]);
23
-
24
22
  if (!loaded.includes(focusedRouteKey)) {
25
23
  setLoaded([...loaded, focusedRouteKey]);
26
24
  }
27
-
28
25
  const dimensions = SafeAreaProviderCompat.initialMetrics.frame;
29
26
  const [tabBarHeight, setTabBarHeight] = React.useState(() => getTabBarHeight({
30
27
  state,
@@ -34,30 +31,25 @@ export default function BottomTabView(props) {
34
31
  width: dimensions.width,
35
32
  height: 0
36
33
  },
37
- insets: { ...SafeAreaProviderCompat.initialMetrics.insets,
34
+ insets: {
35
+ ...SafeAreaProviderCompat.initialMetrics.insets,
38
36
  ...props.safeAreaInsets
39
37
  },
40
38
  style: descriptors[state.routes[state.index].key].options.tabBarStyle
41
39
  }));
42
-
43
40
  const renderTabBar = () => {
44
- return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => {
45
- var _ref, _safeAreaInsets$top, _ref2, _safeAreaInsets$right, _ref3, _safeAreaInsets$botto, _ref4, _safeAreaInsets$left;
46
-
47
- return tabBar({
48
- state: state,
49
- descriptors: descriptors,
50
- navigation: navigation,
51
- insets: {
52
- top: (_ref = (_safeAreaInsets$top = safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.top) !== null && _safeAreaInsets$top !== void 0 ? _safeAreaInsets$top : insets === null || insets === void 0 ? void 0 : insets.top) !== null && _ref !== void 0 ? _ref : 0,
53
- right: (_ref2 = (_safeAreaInsets$right = safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.right) !== null && _safeAreaInsets$right !== void 0 ? _safeAreaInsets$right : insets === null || insets === void 0 ? void 0 : insets.right) !== null && _ref2 !== void 0 ? _ref2 : 0,
54
- bottom: (_ref3 = (_safeAreaInsets$botto = safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.bottom) !== null && _safeAreaInsets$botto !== void 0 ? _safeAreaInsets$botto : insets === null || insets === void 0 ? void 0 : insets.bottom) !== null && _ref3 !== void 0 ? _ref3 : 0,
55
- left: (_ref4 = (_safeAreaInsets$left = safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.left) !== null && _safeAreaInsets$left !== void 0 ? _safeAreaInsets$left : insets === null || insets === void 0 ? void 0 : insets.left) !== null && _ref4 !== void 0 ? _ref4 : 0
56
- }
57
- });
58
- });
41
+ return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => tabBar({
42
+ state: state,
43
+ descriptors: descriptors,
44
+ navigation: navigation,
45
+ insets: {
46
+ top: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.top) ?? (insets === null || insets === void 0 ? void 0 : insets.top) ?? 0,
47
+ right: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.right) ?? (insets === null || insets === void 0 ? void 0 : insets.right) ?? 0,
48
+ bottom: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.bottom) ?? (insets === null || insets === void 0 ? void 0 : insets.bottom) ?? 0,
49
+ left: (safeAreaInsets === null || safeAreaInsets === void 0 ? void 0 : safeAreaInsets.left) ?? (insets === null || insets === void 0 ? void 0 : insets.left) ?? 0
50
+ }
51
+ }));
59
52
  };
60
-
61
53
  const {
62
54
  routes
63
55
  } = state;
@@ -72,23 +64,20 @@ export default function BottomTabView(props) {
72
64
  unmountOnBlur
73
65
  } = descriptor.options;
74
66
  const isFocused = state.index === index;
75
-
76
67
  if (unmountOnBlur && !isFocused) {
77
68
  return null;
78
69
  }
79
-
80
70
  if (lazy && !loaded.includes(route.key) && !isFocused) {
81
71
  // Don't render a lazy screen if we've never navigated to it
82
72
  return null;
83
73
  }
84
-
85
74
  const {
86
75
  freezeOnBlur,
87
- header = _ref5 => {
76
+ header = _ref => {
88
77
  let {
89
78
  layout,
90
79
  options
91
- } = _ref5;
80
+ } = _ref;
92
81
  return /*#__PURE__*/React.createElement(Header, _extends({}, options, {
93
82
  layout: layout,
94
83
  title: getHeaderTitle(options, route.name)
@@ -1 +1 @@
1
- {"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Platform","StyleSheet","SafeAreaInsetsContext","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","options","tabBarStyle","renderTabBar","top","right","bottom","left","styles","container","map","route","descriptor","lazy","unmountOnBlur","isFocused","freezeOnBlur","header","name","headerShown","headerStatusBarHeight","headerTransparent","absoluteFill","zIndex","render","create","flex","overflow"],"sources":["BottomTabView.tsx"],"sourcesContent":["import {\n getHeaderTitle,\n Header,\n SafeAreaProviderCompat,\n Screen,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n TabNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nimport type {\n BottomTabBarProps,\n BottomTabDescriptorMap,\n BottomTabHeaderProps,\n BottomTabNavigationConfig,\n BottomTabNavigationHelpers,\n BottomTabNavigationProp,\n} from '../types';\nimport BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';\nimport BottomTabBarHeightContext from '../utils/BottomTabBarHeightContext';\nimport BottomTabBar, { getTabBarHeight } from './BottomTabBar';\nimport { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';\n\ntype Props = BottomTabNavigationConfig & {\n state: TabNavigationState<ParamListBase>;\n navigation: BottomTabNavigationHelpers;\n descriptors: BottomTabDescriptorMap;\n};\n\nexport default function BottomTabView(props: Props) {\n const {\n tabBar = (props: BottomTabBarProps) => <BottomTabBar {...props} />,\n state,\n navigation,\n descriptors,\n safeAreaInsets,\n detachInactiveScreens = Platform.OS === 'web' ||\n Platform.OS === 'android' ||\n Platform.OS === 'ios',\n sceneContainerStyle,\n } = props;\n\n const focusedRouteKey = state.routes[state.index].key;\n const [loaded, setLoaded] = React.useState([focusedRouteKey]);\n\n if (!loaded.includes(focusedRouteKey)) {\n setLoaded([...loaded, focusedRouteKey]);\n }\n\n const dimensions = SafeAreaProviderCompat.initialMetrics.frame;\n const [tabBarHeight, setTabBarHeight] = React.useState(() =>\n getTabBarHeight({\n state,\n descriptors,\n dimensions,\n layout: { width: dimensions.width, height: 0 },\n insets: {\n ...SafeAreaProviderCompat.initialMetrics.insets,\n ...props.safeAreaInsets,\n },\n style: descriptors[state.routes[state.index].key].options.tabBarStyle,\n })\n );\n\n const renderTabBar = () => {\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets) =>\n tabBar({\n state: state,\n descriptors: descriptors,\n navigation: navigation,\n insets: {\n top: safeAreaInsets?.top ?? insets?.top ?? 0,\n right: safeAreaInsets?.right ?? insets?.right ?? 0,\n bottom: safeAreaInsets?.bottom ?? insets?.bottom ?? 0,\n left: safeAreaInsets?.left ?? insets?.left ?? 0,\n },\n })\n }\n </SafeAreaInsetsContext.Consumer>\n );\n };\n\n const { routes } = state;\n\n return (\n <SafeAreaProviderCompat>\n <MaybeScreenContainer\n enabled={detachInactiveScreens}\n hasTwoStates\n style={styles.container}\n >\n {routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const { lazy = true, unmountOnBlur } = descriptor.options;\n const isFocused = state.index === index;\n\n if (unmountOnBlur && !isFocused) {\n return null;\n }\n\n if (lazy && !loaded.includes(route.key) && !isFocused) {\n // Don't render a lazy screen if we've never navigated to it\n return null;\n }\n\n const {\n freezeOnBlur,\n header = ({ layout, options }: BottomTabHeaderProps) => (\n <Header\n {...options}\n layout={layout}\n title={getHeaderTitle(options, route.name)}\n />\n ),\n headerShown,\n headerStatusBarHeight,\n headerTransparent,\n } = descriptor.options;\n\n return (\n <MaybeScreen\n key={route.key}\n style={[StyleSheet.absoluteFill, { zIndex: isFocused ? 0 : -1 }]}\n visible={isFocused}\n enabled={detachInactiveScreens}\n freezeOnBlur={freezeOnBlur}\n >\n <BottomTabBarHeightContext.Provider value={tabBarHeight}>\n <Screen\n focused={isFocused}\n route={descriptor.route}\n navigation={descriptor.navigation}\n headerShown={headerShown}\n headerStatusBarHeight={headerStatusBarHeight}\n headerTransparent={headerTransparent}\n header={header({\n layout: dimensions,\n route: descriptor.route,\n navigation:\n descriptor.navigation as BottomTabNavigationProp<ParamListBase>,\n options: descriptor.options,\n })}\n style={sceneContainerStyle}\n >\n {descriptor.render()}\n </Screen>\n </BottomTabBarHeightContext.Provider>\n </MaybeScreen>\n );\n })}\n </MaybeScreenContainer>\n <BottomTabBarHeightCallbackContext.Provider value={setTabBarHeight}>\n {renderTabBar()}\n </BottomTabBarHeightCallbackContext.Provider>\n </SafeAreaProviderCompat>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n});\n"],"mappings":";;AAAA,SACEA,cADF,EAEEC,MAFF,EAGEC,sBAHF,EAIEC,MAJF,QAKO,4BALP;AAUA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAAmBC,UAAnB,QAAqC,cAArC;AACA,SAASC,qBAAT,QAAsC,gCAAtC;AAUA,OAAOC,iCAAP,MAA8C,4CAA9C;AACA,OAAOC,yBAAP,MAAsC,oCAAtC;AACA,OAAOC,YAAP,IAAuBC,eAAvB,QAA8C,gBAA9C;AACA,SAASC,WAAT,EAAsBC,oBAAtB,QAAkD,kBAAlD;AAQA,eAAe,SAASC,aAAT,CAAuBC,KAAvB,EAAqC;EAClD,MAAM;IACJC,MAAM,GAAID,KAAD,iBAA8B,oBAAC,YAAD,EAAkBA,KAAlB,CADnC;IAEJE,KAFI;IAGJC,UAHI;IAIJC,WAJI;IAKJC,cALI;IAMJC,qBAAqB,GAAGhB,QAAQ,CAACiB,EAAT,KAAgB,KAAhB,IACtBjB,QAAQ,CAACiB,EAAT,KAAgB,SADM,IAEtBjB,QAAQ,CAACiB,EAAT,KAAgB,KARd;IASJC;EATI,IAUFR,KAVJ;EAYA,MAAMS,eAAe,GAAGP,KAAK,CAACQ,MAAN,CAAaR,KAAK,CAACS,KAAnB,EAA0BC,GAAlD;EACA,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBzB,KAAK,CAAC0B,QAAN,CAAe,CAACN,eAAD,CAAf,CAA5B;;EAEA,IAAI,CAACI,MAAM,CAACG,QAAP,CAAgBP,eAAhB,CAAL,EAAuC;IACrCK,SAAS,CAAC,CAAC,GAAGD,MAAJ,EAAYJ,eAAZ,CAAD,CAAT;EACD;;EAED,MAAMQ,UAAU,GAAG9B,sBAAsB,CAAC+B,cAAvB,CAAsCC,KAAzD;EACA,MAAM,CAACC,YAAD,EAAeC,eAAf,IAAkChC,KAAK,CAAC0B,QAAN,CAAe,MACrDnB,eAAe,CAAC;IACdM,KADc;IAEdE,WAFc;IAGda,UAHc;IAIdK,MAAM,EAAE;MAAEC,KAAK,EAAEN,UAAU,CAACM,KAApB;MAA2BC,MAAM,EAAE;IAAnC,CAJM;IAKdC,MAAM,EAAE,EACN,GAAGtC,sBAAsB,CAAC+B,cAAvB,CAAsCO,MADnC;MAEN,GAAGzB,KAAK,CAACK;IAFH,CALM;IASdqB,KAAK,EAAEtB,WAAW,CAACF,KAAK,CAACQ,MAAN,CAAaR,KAAK,CAACS,KAAnB,EAA0BC,GAA3B,CAAX,CAA2Ce,OAA3C,CAAmDC;EAT5C,CAAD,CADuB,CAAxC;;EAcA,MAAMC,YAAY,GAAG,MAAM;IACzB,oBACE,oBAAC,qBAAD,CAAuB,QAAvB,QACIJ,MAAD;MAAA;;MAAA,OACCxB,MAAM,CAAC;QACLC,KAAK,EAAEA,KADF;QAELE,WAAW,EAAEA,WAFR;QAGLD,UAAU,EAAEA,UAHP;QAILsB,MAAM,EAAE;UACNK,GAAG,iCAAEzB,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEyB,GAAlB,qEAAyBL,MAAzB,aAAyBA,MAAzB,uBAAyBA,MAAM,CAAEK,GAAjC,uCAAwC,CADrC;UAENC,KAAK,oCAAE1B,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE0B,KAAlB,yEAA2BN,MAA3B,aAA2BA,MAA3B,uBAA2BA,MAAM,CAAEM,KAAnC,yCAA4C,CAF3C;UAGNC,MAAM,oCAAE3B,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE2B,MAAlB,yEAA4BP,MAA5B,aAA4BA,MAA5B,uBAA4BA,MAAM,CAAEO,MAApC,yCAA8C,CAH9C;UAINC,IAAI,mCAAE5B,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE4B,IAAlB,uEAA0BR,MAA1B,aAA0BA,MAA1B,uBAA0BA,MAAM,CAAEQ,IAAlC,yCAA0C;QAJxC;MAJH,CAAD,CADP;IAAA,CADH,CADF;EAiBD,CAlBD;;EAoBA,MAAM;IAAEvB;EAAF,IAAaR,KAAnB;EAEA,oBACE,oBAAC,sBAAD,qBACE,oBAAC,oBAAD;IACE,OAAO,EAAEI,qBADX;IAEE,YAAY,MAFd;IAGE,KAAK,EAAE4B,MAAM,CAACC;EAHhB,GAKGzB,MAAM,CAAC0B,GAAP,CAAW,CAACC,KAAD,EAAQ1B,KAAR,KAAkB;IAC5B,MAAM2B,UAAU,GAAGlC,WAAW,CAACiC,KAAK,CAACzB,GAAP,CAA9B;IACA,MAAM;MAAE2B,IAAI,GAAG,IAAT;MAAeC;IAAf,IAAiCF,UAAU,CAACX,OAAlD;IACA,MAAMc,SAAS,GAAGvC,KAAK,CAACS,KAAN,KAAgBA,KAAlC;;IAEA,IAAI6B,aAAa,IAAI,CAACC,SAAtB,EAAiC;MAC/B,OAAO,IAAP;IACD;;IAED,IAAIF,IAAI,IAAI,CAAC1B,MAAM,CAACG,QAAP,CAAgBqB,KAAK,CAACzB,GAAtB,CAAT,IAAuC,CAAC6B,SAA5C,EAAuD;MACrD;MACA,OAAO,IAAP;IACD;;IAED,MAAM;MACJC,YADI;MAEJC,MAAM,GAAG;QAAA,IAAC;UAAErB,MAAF;UAAUK;QAAV,CAAD;QAAA,oBACP,oBAAC,MAAD,eACMA,OADN;UAEE,MAAM,EAAEL,MAFV;UAGE,KAAK,EAAErC,cAAc,CAAC0C,OAAD,EAAUU,KAAK,CAACO,IAAhB;QAHvB,GADO;MAAA,CAFL;MASJC,WATI;MAUJC,qBAVI;MAWJC;IAXI,IAYFT,UAAU,CAACX,OAZf;IAcA,oBACE,oBAAC,WAAD;MACE,GAAG,EAAEU,KAAK,CAACzB,GADb;MAEE,KAAK,EAAE,CAACrB,UAAU,CAACyD,YAAZ,EAA0B;QAAEC,MAAM,EAAER,SAAS,GAAG,CAAH,GAAO,CAAC;MAA3B,CAA1B,CAFT;MAGE,OAAO,EAAEA,SAHX;MAIE,OAAO,EAAEnC,qBAJX;MAKE,YAAY,EAAEoC;IALhB,gBAOE,oBAAC,yBAAD,CAA2B,QAA3B;MAAoC,KAAK,EAAEtB;IAA3C,gBACE,oBAAC,MAAD;MACE,OAAO,EAAEqB,SADX;MAEE,KAAK,EAAEH,UAAU,CAACD,KAFpB;MAGE,UAAU,EAAEC,UAAU,CAACnC,UAHzB;MAIE,WAAW,EAAE0C,WAJf;MAKE,qBAAqB,EAAEC,qBALzB;MAME,iBAAiB,EAAEC,iBANrB;MAOE,MAAM,EAAEJ,MAAM,CAAC;QACbrB,MAAM,EAAEL,UADK;QAEboB,KAAK,EAAEC,UAAU,CAACD,KAFL;QAGblC,UAAU,EACRmC,UAAU,CAACnC,UAJA;QAKbwB,OAAO,EAAEW,UAAU,CAACX;MALP,CAAD,CAPhB;MAcE,KAAK,EAAEnB;IAdT,GAgBG8B,UAAU,CAACY,MAAX,EAhBH,CADF,CAPF,CADF;EA8BD,CA1DA,CALH,CADF,eAkEE,oBAAC,iCAAD,CAAmC,QAAnC;IAA4C,KAAK,EAAE7B;EAAnD,GACGQ,YAAY,EADf,CAlEF,CADF;AAwED;AAED,MAAMK,MAAM,GAAG3C,UAAU,CAAC4D,MAAX,CAAkB;EAC/BhB,SAAS,EAAE;IACTiB,IAAI,EAAE,CADG;IAETC,QAAQ,EAAE;EAFD;AADoB,CAAlB,CAAf"}
1
+ {"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Platform","StyleSheet","SafeAreaInsetsContext","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","options","tabBarStyle","renderTabBar","top","right","bottom","left","styles","container","map","route","descriptor","lazy","unmountOnBlur","isFocused","freezeOnBlur","header","name","headerShown","headerStatusBarHeight","headerTransparent","absoluteFill","zIndex","render","create","flex","overflow"],"sourceRoot":"../../src","sources":["BottomTabView.tsx"],"mappings":"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"}
@@ -1,46 +1,38 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
2
  import { ResourceSavingView } from '@react-navigation/elements';
4
3
  import * as React from 'react';
5
4
  import { View } from 'react-native';
6
5
  let Screens;
7
-
8
6
  try {
9
7
  Screens = require('react-native-screens');
10
- } catch (e) {// Ignore
8
+ } catch (e) {
9
+ // Ignore
11
10
  }
12
-
13
11
  export const MaybeScreenContainer = _ref => {
14
12
  var _Screens, _Screens$screensEnabl;
15
-
16
13
  let {
17
14
  enabled,
18
15
  ...rest
19
16
  } = _ref;
20
-
21
17
  if ((_Screens = Screens) !== null && _Screens !== void 0 && (_Screens$screensEnabl = _Screens.screensEnabled) !== null && _Screens$screensEnabl !== void 0 && _Screens$screensEnabl.call(_Screens)) {
22
18
  return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({
23
19
  enabled: enabled
24
20
  }, rest));
25
21
  }
26
-
27
22
  return /*#__PURE__*/React.createElement(View, rest);
28
23
  };
29
24
  export function MaybeScreen(_ref2) {
30
25
  var _Screens2, _Screens2$screensEnab;
31
-
32
26
  let {
33
27
  visible,
34
28
  children,
35
29
  ...rest
36
30
  } = _ref2;
37
-
38
31
  if ((_Screens2 = Screens) !== null && _Screens2 !== void 0 && (_Screens2$screensEnab = _Screens2.screensEnabled) !== null && _Screens2$screensEnab !== void 0 && _Screens2$screensEnab.call(_Screens2)) {
39
32
  return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
40
33
  activityState: visible ? 2 : 0
41
34
  }, rest), children);
42
35
  }
43
-
44
36
  return /*#__PURE__*/React.createElement(ResourceSavingView, _extends({
45
37
  visible: visible
46
38
  }, rest), children);
@@ -1 +1 @@
1
- {"version":3,"names":["ResourceSavingView","React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","visible","children"],"sources":["ScreenFallback.tsx"],"sourcesContent":["import { ResourceSavingView } from '@react-navigation/elements';\nimport * as React from 'react';\nimport { StyleProp, View, ViewProps, ViewStyle } from 'react-native';\n\ntype Props = {\n visible: boolean;\n children: React.ReactNode;\n enabled: boolean;\n freezeOnBlur?: boolean;\n style?: StyleProp<ViewStyle>;\n};\n\nlet Screens: typeof import('react-native-screens') | undefined;\n\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\n\nexport const MaybeScreenContainer = ({\n enabled,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n hasTwoStates: boolean;\n children: React.ReactNode;\n}) => {\n if (Screens?.screensEnabled?.()) {\n return <Screens.ScreenContainer enabled={enabled} {...rest} />;\n }\n\n return <View {...rest} />;\n};\n\nexport function MaybeScreen({ visible, children, ...rest }: Props) {\n if (Screens?.screensEnabled?.()) {\n return (\n <Screens.Screen activityState={visible ? 2 : 0} {...rest}>\n {children}\n </Screens.Screen>\n );\n }\n\n return (\n <ResourceSavingView visible={visible} {...rest}>\n {children}\n </ResourceSavingView>\n );\n}\n"],"mappings":";;AAAA,SAASA,kBAAT,QAAmC,4BAAnC;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAAoBC,IAApB,QAAsD,cAAtD;AAUA,IAAIC,OAAJ;;AAEA,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,OAAO,MAAMC,oBAAoB,GAAG,QAO9B;EAAA;;EAAA,IAP+B;IACnCC,OADmC;IAEnC,GAAGC;EAFgC,CAO/B;;EACJ,gBAAIL,OAAJ,8DAAI,SAASM,cAAb,kDAAI,oCAAJ,EAAiC;IAC/B,oBAAO,oBAAC,OAAD,CAAS,eAAT;MAAyB,OAAO,EAAEF;IAAlC,GAA+CC,IAA/C,EAAP;EACD;;EAED,oBAAO,oBAAC,IAAD,EAAUA,IAAV,CAAP;AACD,CAbM;AAeP,OAAO,SAASE,WAAT,QAA4D;EAAA;;EAAA,IAAvC;IAAEC,OAAF;IAAWC,QAAX;IAAqB,GAAGJ;EAAxB,CAAuC;;EACjE,iBAAIL,OAAJ,+DAAI,UAASM,cAAb,kDAAI,qCAAJ,EAAiC;IAC/B,oBACE,oBAAC,OAAD,CAAS,MAAT;MAAgB,aAAa,EAAEE,OAAO,GAAG,CAAH,GAAO;IAA7C,GAAoDH,IAApD,GACGI,QADH,CADF;EAKD;;EAED,oBACE,oBAAC,kBAAD;IAAoB,OAAO,EAAED;EAA7B,GAA0CH,IAA1C,GACGI,QADH,CADF;AAKD"}
1
+ {"version":3,"names":["ResourceSavingView","React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","visible","children"],"sourceRoot":"../../src","sources":["ScreenFallback.tsx"],"mappings":";AAAA,SAASA,kBAAkB,QAAQ,4BAA4B;AAC/D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAAoBC,IAAI,QAA8B,cAAc;AAUpE,IAAIC,OAA0D;AAE9D,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAsB,CAAC;AAC3C,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;AAGF,OAAO,MAAMC,oBAAoB,GAAG,QAO9B;EAAA;EAAA,IAP+B;IACnCC,OAAO;IACP,GAAGC;EAKL,CAAC;EACC,gBAAIL,OAAO,8DAAP,SAASM,cAAc,kDAAvB,oCAA2B,EAAE;IAC/B,oBAAO,oBAAC,OAAO,CAAC,eAAe;MAAC,OAAO,EAAEF;IAAQ,GAAKC,IAAI,EAAI;EAChE;EAEA,oBAAO,oBAAC,IAAI,EAAKA,IAAI,CAAI;AAC3B,CAAC;AAED,OAAO,SAASE,WAAW,QAAwC;EAAA;EAAA,IAAvC;IAAEC,OAAO;IAAEC,QAAQ;IAAE,GAAGJ;EAAY,CAAC;EAC/D,iBAAIL,OAAO,+DAAP,UAASM,cAAc,kDAAvB,qCAA2B,EAAE;IAC/B,oBACE,oBAAC,OAAO,CAAC,MAAM;MAAC,aAAa,EAAEE,OAAO,GAAG,CAAC,GAAG;IAAE,GAAKH,IAAI,GACrDI,QAAQ,CACM;EAErB;EAEA,oBACE,oBAAC,kBAAkB;IAAC,OAAO,EAAED;EAAQ,GAAKH,IAAI,GAC3CI,QAAQ,CACU;AAEzB"}
@@ -14,9 +14,10 @@ export default function TabBarIcon(_ref) {
14
14
  renderIcon,
15
15
  style
16
16
  } = _ref;
17
- const size = 25; // We render the icon twice at the same position on top of each other:
18
- // active and inactive one, so we can fade between them.
17
+ const size = 25;
19
18
 
19
+ // We render the icon twice at the same position on top of each other:
20
+ // active and inactive one, so we can fade between them.
20
21
  return /*#__PURE__*/React.createElement(View, {
21
22
  style: [horizontal ? styles.iconHorizontal : styles.iconVertical, style]
22
23
  }, /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","Badge","TabBarIcon","route","_","horizontal","badge","badgeStyle","activeOpacity","inactiveOpacity","activeTintColor","inactiveTintColor","renderIcon","style","size","styles","iconHorizontal","iconVertical","icon","opacity","focused","color","badgeHorizontal","badgeVertical","create","position","alignSelf","alignItems","justifyContent","height","width","minWidth","flex","marginTop","left","top"],"sources":["TabBarIcon.tsx"],"sourcesContent":["import type { Route } from '@react-navigation/native';\nimport React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport Badge from './Badge';\n\ntype Props = {\n route: Route<string>;\n horizontal: boolean;\n badge?: string | number;\n badgeStyle?: StyleProp<TextStyle>;\n activeOpacity: number;\n inactiveOpacity: number;\n activeTintColor: string;\n inactiveTintColor: string;\n renderIcon: (props: {\n focused: boolean;\n color: string;\n size: number;\n }) => React.ReactNode;\n style: StyleProp<ViewStyle>;\n};\n\nexport default function TabBarIcon({\n route: _,\n horizontal,\n badge,\n badgeStyle,\n activeOpacity,\n inactiveOpacity,\n activeTintColor,\n inactiveTintColor,\n renderIcon,\n style,\n}: Props) {\n const size = 25;\n\n // We render the icon twice at the same position on top of each other:\n // active and inactive one, so we can fade between them.\n return (\n <View\n style={[horizontal ? styles.iconHorizontal : styles.iconVertical, style]}\n >\n <View style={[styles.icon, { opacity: activeOpacity }]}>\n {renderIcon({\n focused: true,\n size,\n color: activeTintColor,\n })}\n </View>\n <View style={[styles.icon, { opacity: inactiveOpacity }]}>\n {renderIcon({\n focused: false,\n size,\n color: inactiveTintColor,\n })}\n </View>\n <Badge\n visible={badge != null}\n style={[\n styles.badge,\n horizontal ? styles.badgeHorizontal : styles.badgeVertical,\n badgeStyle,\n ]}\n size={(size * 3) / 4}\n >\n {badge}\n </Badge>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n icon: {\n // We render the icon twice at the same position on top of each other:\n // active and inactive one, so we can fade between them:\n // Cover the whole iconContainer:\n position: 'absolute',\n alignSelf: 'center',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n // Workaround for react-native >= 0.54 layout bug\n minWidth: 25,\n },\n iconVertical: {\n flex: 1,\n },\n iconHorizontal: {\n height: '100%',\n marginTop: 3,\n },\n badge: {\n position: 'absolute',\n left: 3,\n },\n badgeVertical: {\n top: 3,\n },\n badgeHorizontal: {\n top: 7,\n },\n});\n"],"mappings":"AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAEEC,UAFF,EAIEC,IAJF,QAMO,cANP;AAQA,OAAOC,KAAP,MAAkB,SAAlB;AAmBA,eAAe,SAASC,UAAT,OAWL;EAAA,IAXyB;IACjCC,KAAK,EAAEC,CAD0B;IAEjCC,UAFiC;IAGjCC,KAHiC;IAIjCC,UAJiC;IAKjCC,aALiC;IAMjCC,eANiC;IAOjCC,eAPiC;IAQjCC,iBARiC;IASjCC,UATiC;IAUjCC;EAViC,CAWzB;EACR,MAAMC,IAAI,GAAG,EAAb,CADQ,CAGR;EACA;;EACA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAE,CAACT,UAAU,GAAGU,MAAM,CAACC,cAAV,GAA2BD,MAAM,CAACE,YAA7C,EAA2DJ,KAA3D;EADT,gBAGE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACE,MAAM,CAACG,IAAR,EAAc;MAAEC,OAAO,EAAEX;IAAX,CAAd;EAAb,GACGI,UAAU,CAAC;IACVQ,OAAO,EAAE,IADC;IAEVN,IAFU;IAGVO,KAAK,EAAEX;EAHG,CAAD,CADb,CAHF,eAUE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACK,MAAM,CAACG,IAAR,EAAc;MAAEC,OAAO,EAAEV;IAAX,CAAd;EAAb,GACGG,UAAU,CAAC;IACVQ,OAAO,EAAE,KADC;IAEVN,IAFU;IAGVO,KAAK,EAAEV;EAHG,CAAD,CADb,CAVF,eAiBE,oBAAC,KAAD;IACE,OAAO,EAAEL,KAAK,IAAI,IADpB;IAEE,KAAK,EAAE,CACLS,MAAM,CAACT,KADF,EAELD,UAAU,GAAGU,MAAM,CAACO,eAAV,GAA4BP,MAAM,CAACQ,aAFxC,EAGLhB,UAHK,CAFT;IAOE,IAAI,EAAGO,IAAI,GAAG,CAAR,GAAa;EAPrB,GASGR,KATH,CAjBF,CADF;AA+BD;AAED,MAAMS,MAAM,GAAGhB,UAAU,CAACyB,MAAX,CAAkB;EAC/BN,IAAI,EAAE;IACJ;IACA;IACA;IACAO,QAAQ,EAAE,UAJN;IAKJC,SAAS,EAAE,QALP;IAMJC,UAAU,EAAE,QANR;IAOJC,cAAc,EAAE,QAPZ;IAQJC,MAAM,EAAE,MARJ;IASJC,KAAK,EAAE,MATH;IAUJ;IACAC,QAAQ,EAAE;EAXN,CADyB;EAc/Bd,YAAY,EAAE;IACZe,IAAI,EAAE;EADM,CAdiB;EAiB/BhB,cAAc,EAAE;IACda,MAAM,EAAE,MADM;IAEdI,SAAS,EAAE;EAFG,CAjBe;EAqB/B3B,KAAK,EAAE;IACLmB,QAAQ,EAAE,UADL;IAELS,IAAI,EAAE;EAFD,CArBwB;EAyB/BX,aAAa,EAAE;IACbY,GAAG,EAAE;EADQ,CAzBgB;EA4B/Bb,eAAe,EAAE;IACfa,GAAG,EAAE;EADU;AA5Bc,CAAlB,CAAf"}
1
+ {"version":3,"names":["React","StyleSheet","View","Badge","TabBarIcon","route","_","horizontal","badge","badgeStyle","activeOpacity","inactiveOpacity","activeTintColor","inactiveTintColor","renderIcon","style","size","styles","iconHorizontal","iconVertical","icon","opacity","focused","color","badgeHorizontal","badgeVertical","create","position","alignSelf","alignItems","justifyContent","height","width","minWidth","flex","marginTop","left","top"],"sourceRoot":"../../src","sources":["TabBarIcon.tsx"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,UAAU,EAEVC,IAAI,QAEC,cAAc;AAErB,OAAOC,KAAK,MAAM,SAAS;AAmB3B,eAAe,SAASC,UAAU,OAWxB;EAAA,IAXyB;IACjCC,KAAK,EAAEC,CAAC;IACRC,UAAU;IACVC,KAAK;IACLC,UAAU;IACVC,aAAa;IACbC,eAAe;IACfC,eAAe;IACfC,iBAAiB;IACjBC,UAAU;IACVC;EACK,CAAC;EACN,MAAMC,IAAI,GAAG,EAAE;;EAEf;EACA;EACA,oBACE,oBAAC,IAAI;IACH,KAAK,EAAE,CAACT,UAAU,GAAGU,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACE,YAAY,EAAEJ,KAAK;EAAE,gBAEzE,oBAAC,IAAI;IAAC,KAAK,EAAE,CAACE,MAAM,CAACG,IAAI,EAAE;MAAEC,OAAO,EAAEX;IAAc,CAAC;EAAE,GACpDI,UAAU,CAAC;IACVQ,OAAO,EAAE,IAAI;IACbN,IAAI;IACJO,KAAK,EAAEX;EACT,CAAC,CAAC,CACG,eACP,oBAAC,IAAI;IAAC,KAAK,EAAE,CAACK,MAAM,CAACG,IAAI,EAAE;MAAEC,OAAO,EAAEV;IAAgB,CAAC;EAAE,GACtDG,UAAU,CAAC;IACVQ,OAAO,EAAE,KAAK;IACdN,IAAI;IACJO,KAAK,EAAEV;EACT,CAAC,CAAC,CACG,eACP,oBAAC,KAAK;IACJ,OAAO,EAAEL,KAAK,IAAI,IAAK;IACvB,KAAK,EAAE,CACLS,MAAM,CAACT,KAAK,EACZD,UAAU,GAAGU,MAAM,CAACO,eAAe,GAAGP,MAAM,CAACQ,aAAa,EAC1DhB,UAAU,CACV;IACF,IAAI,EAAGO,IAAI,GAAG,CAAC,GAAI;EAAE,GAEpBR,KAAK,CACA,CACH;AAEX;AAEA,MAAMS,MAAM,GAAGhB,UAAU,CAACyB,MAAM,CAAC;EAC/BN,IAAI,EAAE;IACJ;IACA;IACA;IACAO,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE,MAAM;IACb;IACAC,QAAQ,EAAE;EACZ,CAAC;EACDd,YAAY,EAAE;IACZe,IAAI,EAAE;EACR,CAAC;EACDhB,cAAc,EAAE;IACda,MAAM,EAAE,MAAM;IACdI,SAAS,EAAE;EACb,CAAC;EACD3B,KAAK,EAAE;IACLmB,QAAQ,EAAE,UAAU;IACpBS,IAAI,EAAE;EACR,CAAC;EACDX,aAAa,EAAE;IACbY,GAAG,EAAE;EACP,CAAC;EACDb,eAAe,EAAE;IACfa,GAAG,EAAE;EACP;AACF,CAAC,CAAC"}
@@ -17,3 +17,4 @@ export { default as useBottomTabBarHeight } from './utils/useBottomTabBarHeight'
17
17
  * Types
18
18
  */
19
19
  export type { BottomTabBarButtonProps, BottomTabBarProps, BottomTabHeaderProps, BottomTabNavigationEventMap, BottomTabNavigationOptions, BottomTabNavigationProp, BottomTabScreenProps, } from './types';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAE5F;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEjF;;GAEG;AACH,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -5,3 +5,4 @@ declare type Props = DefaultNavigatorOptions<ParamListBase, TabNavigationState<P
5
5
  declare function BottomTabNavigator({ id, initialRouteName, backBehavior, children, screenListeners, screenOptions, sceneContainerStyle, ...restWithDeprecated }: Props): JSX.Element;
6
6
  declare const _default: <ParamList extends ParamListBase>() => import("@react-navigation/native").TypedNavigator<ParamList, TabNavigationState<ParamListBase>, BottomTabNavigationOptions, BottomTabNavigationEventMap, typeof BottomTabNavigator>;
7
7
  export default _default;
8
+ //# sourceMappingURL=createBottomTabNavigator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBottomTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createBottomTabNavigator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,uBAAuB,EACvB,aAAa,EAEb,kBAAkB,EAElB,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAGlB,aAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,kBAAkB,CAAC,aAAa,CAAC,EACjC,0BAA0B,EAC1B,2BAA2B,CAC5B,GACC,gBAAgB,GAChB,yBAAyB,CAAC;AAE5B,iBAAS,kBAAkB,CAAC,EAC1B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,GAAG,kBAAkB,EACtB,EAAE,KAAK,eAwFP;;AAED,wBAKsB"}
@@ -45,7 +45,7 @@ export declare type BottomTabNavigationOptions = HeaderOptions & {
45
45
  title?: string;
46
46
  /**
47
47
  * Title string of a tab displayed in the tab bar
48
- * or a function that given { focused: boolean, color: string, position: 'below-icon' | 'beside-icon' } returns a React.Node to display in tab bar.
48
+ * or a function that given { focused: boolean, color: string, position: 'below-icon' | 'beside-icon', children: string } returns a React.Node to display in tab bar.
49
49
  *
50
50
  * When undefined, scene title is used. Use `tabBarShowLabel` to hide the label.
51
51
  */
@@ -53,6 +53,7 @@ export declare type BottomTabNavigationOptions = HeaderOptions & {
53
53
  focused: boolean;
54
54
  color: string;
55
55
  position: LabelPosition;
56
+ children: string;
56
57
  }) => React.ReactNode);
57
58
  /**
58
59
  * Whether the tab label should be visible. Defaults to `true`.
@@ -238,3 +239,4 @@ export declare type BottomTabBarButtonProps = Omit<TouchableWithoutFeedbackProps
238
239
  children: React.ReactNode;
239
240
  onPress?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent) => void;
240
241
  };
242
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
2
  declare const _default: React.Context<((height: number) => void) | undefined>;
3
3
  export default _default;
4
+ //# sourceMappingURL=BottomTabBarHeightCallbackContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomTabBarHeightCallbackContext.d.ts","sourceRoot":"","sources":["../../../../src/utils/BottomTabBarHeightCallbackContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;gDAEc,MAAM,KAAK,IAAI;AAA5D,wBAEE"}
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
2
  declare const _default: React.Context<number | undefined>;
3
3
  export default _default;
4
+ //# sourceMappingURL=BottomTabBarHeightContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomTabBarHeightContext.d.ts","sourceRoot":"","sources":["../../../../src/utils/BottomTabBarHeightContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;;AAE/B,wBAAkE"}
@@ -1 +1,2 @@
1
- export default function useFloatingBottomTabBarHeight(): number;
1
+ export default function useBottomTabBarHeight(): number;
2
+ //# sourceMappingURL=useBottomTabBarHeight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBottomTabBarHeight.d.ts","sourceRoot":"","sources":["../../../../src/utils/useBottomTabBarHeight.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,qBAAqB,WAU5C"}
@@ -1 +1,2 @@
1
1
  export default function useIsKeyboardShown(): boolean;
2
+ //# sourceMappingURL=useIsKeyboardShown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsKeyboardShown.d.ts","sourceRoot":"","sources":["../../../../src/utils/useIsKeyboardShown.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,kBAAkB,YA2BzC"}
@@ -20,3 +20,4 @@ declare type Props = {
20
20
  };
21
21
  export default function Badge({ children, style, visible, size, ...rest }: Props): JSX.Element | null;
22
22
  export {};
23
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/views/Badge.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,aAAK,KAAK,GAAG;IACX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,OAAc,EACd,IAAS,EACT,GAAG,IAAI,EACR,EAAE,KAAK,sBAsEP"}
@@ -24,3 +24,4 @@ export declare const getTabBarHeight: ({ state, descriptors, dimensions, insets,
24
24
  }) => number;
25
25
  export default function BottomTabBar({ state, navigation, descriptors, insets, style, }: Props): JSX.Element;
26
26
  export {};
27
+ //# sourceMappingURL=BottomTabBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAIL,aAAa,EACb,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,QAAQ,EAGR,SAAS,EAGT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAoB,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAK1E,aAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAQF,aAAK,OAAO,GAAG;IACb,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,sBAAsB,CAAC;IACpC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,CAAC;AA8CF,eAAO,MAAM,eAAe;YAQlB,UAAU;WACX,SAAS,iBAAiB,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,SAAS;YA4BpE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,KAAK,GACN,EAAE,KAAK,eAoPP"}
@@ -1,7 +1,7 @@
1
1
  import { Route } from '@react-navigation/native';
2
2
  import React from 'react';
3
3
  import { GestureResponderEvent, StyleProp, TextStyle, ViewStyle } from 'react-native';
4
- import type { BottomTabBarButtonProps, LabelPosition } from '../types';
4
+ import type { BottomTabBarButtonProps, BottomTabDescriptor, LabelPosition } from '../types';
5
5
  declare type Props = {
6
6
  /**
7
7
  * Whether the tab is focused.
@@ -11,6 +11,10 @@ declare type Props = {
11
11
  * The route object which should be specified by the tab.
12
12
  */
13
13
  route: Route<string>;
14
+ /**
15
+ * The descriptor object for the route.
16
+ */
17
+ descriptor: BottomTabDescriptor;
14
18
  /**
15
19
  * The label text of the tab.
16
20
  */
@@ -18,6 +22,7 @@ declare type Props = {
18
22
  focused: boolean;
19
23
  color: string;
20
24
  position: LabelPosition;
25
+ children: string;
21
26
  }) => React.ReactNode);
22
27
  /**
23
28
  * Icon to display for the tab.
@@ -101,5 +106,6 @@ declare type Props = {
101
106
  */
102
107
  style?: StyleProp<ViewStyle>;
103
108
  };
104
- export default function BottomTabBarItem({ focused, route, label, icon, badge, badgeStyle, to, button, accessibilityLabel, testID, onPress, onLongPress, horizontal, activeTintColor: customActiveTintColor, inactiveTintColor: customInactiveTintColor, activeBackgroundColor, inactiveBackgroundColor, showLabel, allowFontScaling, labelStyle, iconStyle, style, }: Props): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
109
+ export default function BottomTabBarItem({ focused, route, descriptor, label, icon, badge, badgeStyle, to, button, accessibilityLabel, testID, onPress, onLongPress, horizontal, activeTintColor: customActiveTintColor, inactiveTintColor: customInactiveTintColor, activeBackgroundColor, inactiveBackgroundColor, showLabel, allowFontScaling, labelStyle, iconStyle, style, }: Props): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
105
110
  export {};
111
+ //# sourceMappingURL=BottomTabItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomTabItem.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabItem.tsx"],"names":[],"mappings":"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"}
@@ -8,3 +8,4 @@ declare type Props = BottomTabNavigationConfig & {
8
8
  };
9
9
  export default function BottomTabView(props: Props): JSX.Element;
10
10
  export {};
11
+ //# sourceMappingURL=BottomTabView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabView.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAEV,sBAAsB,EAEtB,yBAAyB,EACzB,0BAA0B,EAE3B,MAAM,UAAU,CAAC;AAMlB,aAAK,KAAK,GAAG,yBAAyB,GAAG;IACvC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,0BAA0B,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,KAAK,eAiIjD"}
@@ -14,3 +14,4 @@ export declare const MaybeScreenContainer: ({ enabled, ...rest }: ViewProps & {
14
14
  }) => JSX.Element;
15
15
  export declare function MaybeScreen({ visible, children, ...rest }: Props): JSX.Element;
16
16
  export {};
17
+ //# sourceMappingURL=ScreenFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenFallback.d.ts","sourceRoot":"","sources":["../../../../src/views/ScreenFallback.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAQ,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,aAAK,KAAK,GAAG;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAUF,eAAO,MAAM,oBAAoB;aAItB,OAAO;kBACF,OAAO;cACX,MAAM,SAAS;iBAO1B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,eAchE"}
@@ -19,3 +19,4 @@ declare type Props = {
19
19
  };
20
20
  export default function TabBarIcon({ route: _, horizontal, badge, badgeStyle, activeOpacity, inactiveOpacity, activeTintColor, inactiveTintColor, renderIcon, style, }: Props): JSX.Element;
21
21
  export {};
22
+ //# sourceMappingURL=TabBarIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabBarIcon.d.ts","sourceRoot":"","sources":["../../../../src/views/TabBarIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,SAAS,EAET,SAAS,EAET,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,aAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,CAAC,KAAK,EAAE;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EAAE,CAAC,EACR,UAAU,EACV,KAAK,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,KAAK,GACN,EAAE,KAAK,eAoCP"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/bottom-tabs",
3
3
  "description": "Bottom tab navigator following iOS design guidelines",
4
- "version": "6.4.3",
4
+ "version": "6.5.1",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -36,12 +36,12 @@
36
36
  "clean": "del lib"
37
37
  },
38
38
  "dependencies": {
39
- "@react-navigation/elements": "^1.3.9",
39
+ "@react-navigation/elements": "^1.3.11",
40
40
  "color": "^4.2.3",
41
41
  "warn-once": "^0.1.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@react-navigation/native": "^6.0.16",
44
+ "@react-navigation/native": "^6.1.1",
45
45
  "@testing-library/react-native": "^11.5.0",
46
46
  "@types/color": "^3.0.1",
47
47
  "@types/react": "~18.0.0",
@@ -49,7 +49,7 @@
49
49
  "del-cli": "^3.0.1",
50
50
  "react": "18.0.0",
51
51
  "react-native": "0.69.5",
52
- "react-native-builder-bob": "^0.18.1",
52
+ "react-native-builder-bob": "^0.20.3",
53
53
  "react-native-safe-area-context": "4.3.1",
54
54
  "react-native-screens": "~3.15.0",
55
55
  "typescript": "^4.7.4"
@@ -75,5 +75,5 @@
75
75
  ]
76
76
  ]
77
77
  },
78
- "gitHead": "4e29403ec63d9304561e296667f6cf15806c316b"
78
+ "gitHead": "2b22d3ea9ca99bc298f4fb48ae9808b65aa25620"
79
79
  }
package/src/types.tsx CHANGED
@@ -91,7 +91,7 @@ export type BottomTabNavigationOptions = HeaderOptions & {
91
91
 
92
92
  /**
93
93
  * Title string of a tab displayed in the tab bar
94
- * or a function that given { focused: boolean, color: string, position: 'below-icon' | 'beside-icon' } returns a React.Node to display in tab bar.
94
+ * or a function that given { focused: boolean, color: string, position: 'below-icon' | 'beside-icon', children: string } returns a React.Node to display in tab bar.
95
95
  *
96
96
  * When undefined, scene title is used. Use `tabBarShowLabel` to hide the label.
97
97
  */
@@ -101,6 +101,7 @@ export type BottomTabNavigationOptions = HeaderOptions & {
101
101
  focused: boolean;
102
102
  color: string;
103
103
  position: LabelPosition;
104
+ children: string;
104
105
  }) => React.ReactNode);
105
106
 
106
107
  /**
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
 
3
3
  import BottomTabBarHeightContext from './BottomTabBarHeightContext';
4
4
 
5
- export default function useFloatingBottomTabBarHeight() {
5
+ export default function useBottomTabBarHeight() {
6
6
  const height = React.useContext(BottomTabBarHeightContext);
7
7
 
8
8
  if (height === undefined) {
@@ -340,6 +340,7 @@ export default function BottomTabBar({
340
340
  <NavigationRouteContext.Provider value={route}>
341
341
  <BottomTabItem
342
342
  route={route}
343
+ descriptor={descriptors[route.key]}
343
344
  focused={focused}
344
345
  horizontal={hasHorizontalLabels}
345
346
  onPress={onPress}
@@ -12,7 +12,11 @@ import {
12
12
  ViewStyle,
13
13
  } from 'react-native';
14
14
 
15
- import type { BottomTabBarButtonProps, LabelPosition } from '../types';
15
+ import type {
16
+ BottomTabBarButtonProps,
17
+ BottomTabDescriptor,
18
+ LabelPosition,
19
+ } from '../types';
16
20
  import TabBarIcon from './TabBarIcon';
17
21
 
18
22
  type Props = {
@@ -24,6 +28,10 @@ type Props = {
24
28
  * The route object which should be specified by the tab.
25
29
  */
26
30
  route: Route<string>;
31
+ /**
32
+ * The descriptor object for the route.
33
+ */
34
+ descriptor: BottomTabDescriptor;
27
35
  /**
28
36
  * The label text of the tab.
29
37
  */
@@ -33,6 +41,7 @@ type Props = {
33
41
  focused: boolean;
34
42
  color: string;
35
43
  position: LabelPosition;
44
+ children: string;
36
45
  }) => React.ReactNode);
37
46
  /**
38
47
  * Icon to display for the tab.
@@ -122,6 +131,7 @@ type Props = {
122
131
  export default function BottomTabBarItem({
123
132
  focused,
124
133
  route,
134
+ descriptor,
125
135
  label,
126
136
  icon,
127
137
  badge,
@@ -220,10 +230,19 @@ export default function BottomTabBarItem({
220
230
  );
221
231
  }
222
232
 
233
+ const { options } = descriptor;
234
+ const children =
235
+ typeof options.tabBarLabel === 'string'
236
+ ? options.tabBarLabel
237
+ : options.title !== undefined
238
+ ? options.title
239
+ : route.name;
240
+
223
241
  return label({
224
242
  focused,
225
243
  color,
226
244
  position: horizontal ? 'beside-icon' : 'below-icon',
245
+ children,
227
246
  });
228
247
  };
229
248