UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 44 kB
{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"component\"];\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nimport * as React from 'react';\nimport Animated from \"react-native-web/dist/exports/Animated\";\nimport Platform from \"react-native-web/dist/exports/Platform\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport useLatestCallback from 'use-latest-callback';\nimport BottomNavigationBar from \"./BottomNavigationBar\";\nimport BottomNavigationRouteScreen from \"./BottomNavigationRouteScreen\";\nimport { useInternalTheme } from \"../../core/theming\";\nimport useAnimatedValueArray from \"../../utils/useAnimatedValueArray\";\nvar FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\nvar SceneComponent = React.memo(function (_ref) {\n var component = _ref.component,\n rest = _objectWithoutProperties(_ref, _excluded);\n return React.createElement(component, rest);\n});\nvar BottomNavigation = function BottomNavigation(_ref2) {\n var navigationState = _ref2.navigationState,\n renderScene = _ref2.renderScene,\n renderIcon = _ref2.renderIcon,\n renderLabel = _ref2.renderLabel,\n renderTouchable = _ref2.renderTouchable,\n getLabelText = _ref2.getLabelText,\n getBadge = _ref2.getBadge,\n getColor = _ref2.getColor,\n getAccessibilityLabel = _ref2.getAccessibilityLabel,\n getTestID = _ref2.getTestID,\n activeColor = _ref2.activeColor,\n inactiveColor = _ref2.inactiveColor,\n _ref2$keyboardHidesNa = _ref2.keyboardHidesNavigationBar,\n keyboardHidesNavigationBar = _ref2$keyboardHidesNa === void 0 ? Platform.OS === 'android' : _ref2$keyboardHidesNa,\n barStyle = _ref2.barStyle,\n _ref2$labeled = _ref2.labeled,\n labeled = _ref2$labeled === void 0 ? true : _ref2$labeled,\n style = _ref2.style,\n activeIndicatorStyle = _ref2.activeIndicatorStyle,\n _ref2$sceneAnimationE = _ref2.sceneAnimationEnabled,\n sceneAnimationEnabled = _ref2$sceneAnimationE === void 0 ? false : _ref2$sceneAnimationE,\n _ref2$sceneAnimationT = _ref2.sceneAnimationType,\n sceneAnimationType = _ref2$sceneAnimationT === void 0 ? 'opacity' : _ref2$sceneAnimationT,\n sceneAnimationEasing = _ref2.sceneAnimationEasing,\n onTabPress = _ref2.onTabPress,\n onTabLongPress = _ref2.onTabLongPress,\n onIndexChange = _ref2.onIndexChange,\n shiftingProp = _ref2.shifting,\n safeAreaInsets = _ref2.safeAreaInsets,\n _ref2$labelMaxFontSiz = _ref2.labelMaxFontSizeMultiplier,\n labelMaxFontSizeMultiplier = _ref2$labelMaxFontSiz === void 0 ? 1 : _ref2$labelMaxFontSiz,\n compactProp = _ref2.compact,\n _ref2$testID = _ref2.testID,\n testID = _ref2$testID === void 0 ? 'bottom-navigation' : _ref2$testID,\n themeOverrides = _ref2.theme,\n _ref2$getLazy = _ref2.getLazy,\n getLazy = _ref2$getLazy === void 0 ? function (_ref3) {\n var route = _ref3.route;\n return route.lazy;\n } : _ref2$getLazy;\n var theme = useInternalTheme(themeOverrides);\n var scale = theme.animation.scale;\n var compact = compactProp != null ? compactProp : !theme.isV3;\n var shifting = shiftingProp != null ? shiftingProp : theme.isV3 ? false : navigationState.routes.length > 3;\n if (shifting && navigationState.routes.length < 2) {\n shifting = false;\n console.warn('BottomNavigation needs at least 2 tabs to run shifting animation');\n }\n var focusedKey = navigationState.routes[navigationState.index].key;\n var tabsPositionAnims = useAnimatedValueArray(navigationState.routes.map(function (_, i) {\n return i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1;\n }));\n var offsetsAnims = useAnimatedValueArray(navigationState.routes.map(function (_, i) {\n return i === navigationState.index ? 0 : 1;\n }));\n var _React$useState = React.useState([focusedKey]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n loaded = _React$useState2[0],\n setLoaded = _React$useState2[1];\n if (!loaded.includes(focusedKey)) {\n setLoaded(function (loaded) {\n return [].concat(_toConsumableArray(loaded), [focusedKey]);\n });\n }\n var animateToIndex = React.useCallback(function (index) {\n Animated.parallel(_toConsumableArray(navigationState.routes.map(function (_, i) {\n return Animated.timing(tabsPositionAnims[i], {\n toValue: i === index ? 0 : i >= index ? 1 : -1,\n duration: theme.isV3 || shifting ? 150 * scale : 0,\n useNativeDriver: true,\n easing: sceneAnimationEasing\n });\n }))).start(function (_ref4) {\n var finished = _ref4.finished;\n if (finished) {\n offsetsAnims.forEach(function (offset, i) {\n if (i === index) {\n offset.setValue(0);\n } else {\n offset.setValue(1);\n }\n });\n }\n });\n }, [shifting, navigationState.routes, offsetsAnims, scale, tabsPositionAnims, sceneAnimationEasing, theme]);\n React.useEffect(function () {\n animateToIndex(navigationState.index);\n }, []);\n var prevNavigationState = React.useRef(undefined);\n React.useEffect(function () {\n offsetsAnims.forEach(function (offset, i) {\n var _prevNavigationState$;\n if (i === navigationState.index || i === ((_prevNavigationState$ = prevNavigationState.current) === null || _prevNavigationState$ === void 0 ? void 0 : _prevNavigationState$.index)) {\n offset.setValue(0);\n }\n });\n animateToIndex(navigationState.index);\n }, [navigationState.index, animateToIndex, offsetsAnims]);\n var handleTabPress = useLatestCallback(function (event) {\n onTabPress === null || onTabPress === void 0 || onTabPress(event);\n if (event.defaultPrevented) {\n return;\n }\n var index = navigationState.routes.findIndex(function (route) {\n return event.route.key === route.key;\n });\n if (index !== navigationState.index) {\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n }\n });\n var jumpTo = useLatestCallback(function (key) {\n var index = navigationState.routes.findIndex(function (route) {\n return route.key === key;\n });\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n });\n var routes = navigationState.routes;\n var colors = theme.colors;\n return React.createElement(View, {\n style: [styles.container, style],\n testID: testID\n }, React.createElement(View, {\n style: [styles.content, {\n backgroundColor: colors === null || colors === void 0 ? void 0 : colors.background\n }]\n }, routes.map(function (route, index) {\n var _prevNavigationState$2;\n if (getLazy({\n route: route\n }) !== false && !loaded.includes(route.key)) {\n return null;\n }\n var focused = navigationState.index === index;\n var previouslyFocused = ((_prevNavigationState$2 = prevNavigationState.current) === null || _prevNavigationState$2 === void 0 ? void 0 : _prevNavigationState$2.index) === index;\n var countAlphaOffscreen = sceneAnimationEnabled && (focused || previouslyFocused);\n var renderToHardwareTextureAndroid = sceneAnimationEnabled && focused;\n var opacity = sceneAnimationEnabled ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [0, 1, 0]\n }) : focused ? 1 : 0;\n var offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n var top = sceneAnimationEnabled ? offsetsAnims[index].interpolate({\n inputRange: [0, 1],\n outputRange: [0, offsetTarget]\n }) : offsetTarget;\n var left = sceneAnimationType === 'shifting' ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [-50, 0, 50]\n }) : 0;\n var zIndex = focused ? 1 : 0;\n return React.createElement(BottomNavigationRouteScreen, {\n key: route.key,\n pointerEvents: focused ? 'auto' : 'none',\n accessibilityElementsHidden: !focused,\n importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n index: index,\n visibility: opacity,\n style: [StyleSheet.absoluteFill, {\n zIndex: zIndex\n }],\n collapsable: false,\n removeClippedSubviews: Platform.OS === 'ios' ? navigationState.index !== index : true\n }, React.createElement(Animated.View, _extends({}, Platform.OS === 'android' && {\n needsOffscreenAlphaCompositing: countAlphaOffscreen\n }, {\n renderToHardwareTextureAndroid: renderToHardwareTextureAndroid,\n style: [styles.content, {\n opacity: opacity,\n transform: [{\n translateX: left\n }, {\n translateY: top\n }]\n }]\n }), renderScene({\n route: route,\n jumpTo: jumpTo\n })));\n })), React.createElement(BottomNavigationBar, {\n navigationState: navigationState,\n renderIcon: renderIcon,\n renderLabel: renderLabel,\n renderTouchable: renderTouchable,\n getLabelText: getLabelText,\n getBadge: getBadge,\n getColor: getColor,\n getAccessibilityLabel: getAccessibilityLabel,\n getTestID: getTestID,\n activeColor: activeColor,\n inactiveColor: inactiveColor,\n keyboardHidesNavigationBar: keyboardHidesNavigationBar,\n style: barStyle,\n activeIndicatorStyle: activeIndicatorStyle,\n labeled: labeled,\n animationEasing: sceneAnimationEasing,\n onTabPress: handleTabPress,\n onTabLongPress: onTabLongPress,\n shifting: shifting,\n safeAreaInsets: safeAreaInsets,\n labelMaxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n compact: compact,\n testID: `${testID}-bar`,\n theme: theme\n }));\n};\nBottomNavigation.SceneMap = function (scenes) {\n return function (_ref5) {\n var route = _ref5.route,\n jumpTo = _ref5.jumpTo;\n return React.createElement(SceneComponent, {\n key: route.key,\n component: scenes[route.key ? route.key : ''],\n route: route,\n jumpTo: jumpTo\n });\n };\n};\nBottomNavigation.Bar = BottomNavigationBar;\nexport default BottomNavigation;\nvar styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden'\n },\n content: {\n flex: 1\n }\n});","map":{"version":3,"names":["React","Animated","Platform","StyleSheet","View","useLatestCallback","BottomNavigationBar","BottomNavigationRouteScreen","useInternalTheme","useAnimatedValueArray","FAR_FAR_AWAY","OS","SceneComponent","memo","_ref","component","rest","_objectWithoutProperties","_excluded","createElement","BottomNavigation","_ref2","navigationState","renderScene","renderIcon","renderLabel","renderTouchable","getLabelText","getBadge","getColor","getAccessibilityLabel","getTestID","activeColor","inactiveColor","_ref2$keyboardHidesNa","keyboardHidesNavigationBar","barStyle","_ref2$labeled","labeled","style","activeIndicatorStyle","_ref2$sceneAnimationE","sceneAnimationEnabled","_ref2$sceneAnimationT","sceneAnimationType","sceneAnimationEasing","onTabPress","onTabLongPress","onIndexChange","shiftingProp","shifting","safeAreaInsets","_ref2$labelMaxFontSiz","labelMaxFontSizeMultiplier","compactProp","compact","_ref2$testID","testID","themeOverrides","theme","_ref2$getLazy","getLazy","_ref3","route","lazy","scale","animation","isV3","routes","length","console","warn","focusedKey","index","key","tabsPositionAnims","map","_","i","offsetsAnims","_React$useState","useState","_React$useState2","_slicedToArray","loaded","setLoaded","includes","concat","_toConsumableArray","animateToIndex","useCallback","parallel","timing","toValue","duration","useNativeDriver","easing","start","_ref4","finished","forEach","offset","setValue","useEffect","prevNavigationState","useRef","undefined","_prevNavigationState$","current","handleTabPress","event","defaultPrevented","findIndex","jumpTo","colors","styles","container","content","backgroundColor","background","_prevNavigationState$2","focused","previouslyFocused","countAlphaOffscreen","renderToHardwareTextureAndroid","opacity","interpolate","inputRange","outputRange","offsetTarget","top","left","zIndex","pointerEvents","accessibilityElementsHidden","importantForAccessibility","visibility","absoluteFill","collapsable","removeClippedSubviews","_extends","needsOffscreenAlphaCompositing","transform","translateX","translateY","animationEasing","SceneMap","scenes","_ref5","Bar","create","flex","overflow"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/BottomNavigation/BottomNavigation.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Animated,\n ColorValue,\n EasingFunction,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport useLatestCallback from 'use-latest-callback';\n\nimport BottomNavigationBar from './BottomNavigationBar';\nimport BottomNavigationRouteScreen from './BottomNavigationRouteScreen';\nimport { useInternalTheme } from '../../core/theming';\nimport type { ThemeProp } from '../../types';\nimport useAnimatedValueArray from '../../utils/useAnimatedValueArray';\nimport type { IconSource } from '../Icon';\nimport { Props as TouchableRippleProps } from '../TouchableRipple/TouchableRipple';\n\nexport type BaseRoute = {\n key: string;\n title?: string;\n focusedIcon?: IconSource;\n unfocusedIcon?: IconSource;\n badge?: string | number | boolean;\n /**\n * @deprecated In v5.x works only with theme version 2.\n */\n color?: string;\n accessibilityLabel?: string;\n testID?: string;\n lazy?: boolean;\n};\n\ntype NavigationState<Route extends BaseRoute> = {\n index: number;\n routes: Route[];\n};\n\ntype TabPressEvent = {\n defaultPrevented: boolean;\n preventDefault(): void;\n};\n\ntype TouchableProps<Route extends BaseRoute> = TouchableRippleProps & {\n key: string;\n route: Route;\n children: React.ReactNode;\n borderless?: boolean;\n centered?: boolean;\n rippleColor?: ColorValue;\n};\n\nexport type Props<Route extends BaseRoute> = {\n /**\n * Whether the shifting style is used, the active tab icon shifts up to show the label and the inactive tabs won't have a label.\n *\n * By default, this is `false` with theme version 3 and `true` when you have more than 3 tabs.\n * Pass `shifting={false}` to explicitly disable this animation, or `shifting={true}` to always use this animation.\n * Note that you need at least 2 tabs be able to run this animation.\n */\n shifting?: boolean;\n /**\n * Whether to show labels in tabs. When `false`, only icons will be displayed.\n */\n labeled?: boolean;\n /**\n * Whether tabs should be spread across the entire width.\n */\n compact?: boolean;\n /**\n * State for the bottom navigation. The state should contain the following properties:\n *\n * - `index`: a number representing the index of the active route in the `routes` array\n * - `routes`: an array containing a list of route objects used for rendering the tabs\n *\n * Each route object should contain the following properties:\n *\n * - `key`: a unique key to identify the route (required)\n * - `title`: title of the route to use as the tab label\n * - `focusedIcon`: icon to use as the focused tab icon, can be a string, an image source or a react component @renamed Renamed from 'icon' to 'focusedIcon' in v5.x\n * - `unfocusedIcon`: icon to use as the unfocused tab icon, can be a string, an image source or a react component @supported Available in v5.x with theme version 3\n * - `color`: color to use as background color for shifting bottom navigation @deprecatedProperty In v5.x works only with theme version 2.\n * - `badge`: badge to show on the tab icon, can be `true` to show a dot, `string` or `number` to show text.\n * - `accessibilityLabel`: accessibility label for the tab button\n * - `testID`: test id for the tab button\n *\n * Example:\n *\n * ```js\n * {\n * index: 1,\n * routes: [\n * { key: 'music', title: 'Favorites', focusedIcon: 'heart', unfocusedIcon: 'heart-outline'},\n * { key: 'albums', title: 'Albums', focusedIcon: 'album' },\n * { key: 'recents', title: 'Recents', focusedIcon: 'history' },\n * { key: 'notifications', title: 'Notifications', focusedIcon: 'bell', unfocusedIcon: 'bell-outline' },\n * ]\n * }\n * ```\n *\n * `BottomNavigation` is a controlled component, which means the `index` needs to be updated via the `onIndexChange` callback.\n */\n navigationState: NavigationState<Route>;\n /**\n * Callback which is called on tab change, receives the index of the new tab as argument.\n * The navigation state needs to be updated when it's called, otherwise the change is dropped.\n */\n onIndexChange: (index: number) => void;\n /**\n * Callback which returns a react element to render as the page for the tab. Receives an object containing the route as the argument:\n *\n * ```js\n * renderScene = ({ route, jumpTo }) => {\n * switch (route.key) {\n * case 'music':\n * return <MusicRoute jumpTo={jumpTo} />;\n * case 'albums':\n * return <AlbumsRoute jumpTo={jumpTo} />;\n * }\n * }\n * ```\n *\n * Pages are lazily rendered, which means that a page will be rendered the first time you navigate to it.\n * After initial render, all the pages stay rendered to preserve their state.\n *\n * You need to make sure that your individual routes implement a `shouldComponentUpdate` to improve the performance.\n * To make it easier to specify the components, you can use the `SceneMap` helper:\n *\n * ```js\n * renderScene = BottomNavigation.SceneMap({\n * music: MusicRoute,\n * albums: AlbumsRoute,\n * });\n * ```\n *\n * Specifying the components this way is easier and takes care of implementing a `shouldComponentUpdate` method.\n * Each component will receive the current route and a `jumpTo` method as it's props.\n * The `jumpTo` method can be used to navigate to other tabs programmatically:\n *\n * ```js\n * this.props.jumpTo('albums')\n * ```\n */\n renderScene: (props: {\n route: Route;\n jumpTo: (key: string) => void;\n }) => React.ReactNode | null;\n /**\n * Callback which returns a React Element to be used as tab icon.\n */\n renderIcon?: (props: {\n route: Route;\n focused: boolean;\n color: string;\n }) => React.ReactNode;\n /**\n * Callback which React Element to be used as tab label.\n */\n renderLabel?: (props: {\n route: Route;\n focused: boolean;\n color: string;\n }) => React.ReactNode;\n /**\n * Callback which returns a React element to be used as the touchable for the tab item.\n * Renders a `TouchableRipple` on Android and `Pressable` on iOS.\n */\n renderTouchable?: (props: TouchableProps<Route>) => React.ReactNode;\n /**\n * Get accessibility label for the tab button. This is read by the screen reader when the user taps the tab.\n * Uses `route.accessibilityLabel` by default.\n */\n getAccessibilityLabel?: (props: { route: Route }) => string | undefined;\n /**\n * Get badge for the tab, uses `route.badge` by default.\n */\n getBadge?: (props: { route: Route }) => boolean | number | string | undefined;\n /**\n * Get color for the tab, uses `route.color` by default.\n */\n getColor?: (props: { route: Route }) => string | undefined;\n /**\n * Get label text for the tab, uses `route.title` by default. Use `renderLabel` to replace label component.\n */\n getLabelText?: (props: { route: Route }) => string | undefined;\n /**\n * Get lazy for the current screen. Uses true by default.\n */\n getLazy?: (props: { route: Route }) => boolean | undefined;\n /**\n * Get the id to locate this tab button in tests, uses `route.testID` by default.\n */\n getTestID?: (props: { route: Route }) => string | undefined;\n /**\n * Function to execute on tab press. It receives the route for the pressed tab, useful for things like scroll to top.\n */\n onTabPress?: (props: { route: Route } & TabPressEvent) => void;\n /**\n * Function to execute on tab long press. It receives the route for the pressed tab, useful for things like custom action when longed pressed.\n */\n onTabLongPress?: (props: { route: Route } & TabPressEvent) => void;\n /**\n * Custom color for icon and label in the active tab.\n */\n activeColor?: string;\n /**\n * Custom color for icon and label in the inactive tab.\n */\n inactiveColor?: string;\n /**\n * Whether animation is enabled for scenes transitions in `shifting` mode.\n * By default, the scenes cross-fade during tab change when `shifting` is enabled.\n * Specify `sceneAnimationEnabled` as `false` to disable the animation.\n */\n sceneAnimationEnabled?: boolean;\n /**\n * The scene animation effect. Specify `'shifting'` for a different effect.\n * By default, 'opacity' will be used.\n */\n sceneAnimationType?: 'opacity' | 'shifting';\n /**\n * The scene animation Easing.\n */\n sceneAnimationEasing?: EasingFunction | undefined;\n /**\n * Whether the bottom navigation bar is hidden when keyboard is shown.\n * On Android, this works best when [`windowSoftInputMode`](https://developer.android.com/guide/topics/manifest/activity-element#wsoft) is set to `adjustResize`.\n */\n keyboardHidesNavigationBar?: boolean;\n /**\n * Safe area insets for the tab bar. This can be used to avoid elements like the navigation bar on Android and bottom safe area on iOS.\n * The bottom insets for iOS is added by default. You can override the behavior with this option.\n */\n safeAreaInsets?: {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n };\n /**\n * Style for the bottom navigation bar. You can pass a custom background color here:\n *\n * ```js\n * barStyle={{ backgroundColor: '#694fad' }}\n * ```\n */\n barStyle?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n /**\n * Specifies the largest possible scale a label font can reach.\n */\n labelMaxFontSizeMultiplier?: number;\n style?: StyleProp<ViewStyle>;\n activeIndicatorStyle?: StyleProp<ViewStyle>;\n /**\n * @optional\n */\n theme?: ThemeProp;\n /**\n * TestID used for testing purposes\n */\n testID?: string;\n};\n\nconst FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\n\nconst SceneComponent = React.memo(({ component, ...rest }: any) =>\n React.createElement(component, rest)\n);\n\n/**\n * BottomNavigation provides quick navigation between top-level views of an app with a bottom navigation bar.\n * It is primarily designed for use on mobile. If you want to use the navigation bar only see [`BottomNavigation.Bar`](BottomNavigationBar).\n *\n * By default BottomNavigation uses primary color as a background, in dark theme with `adaptive` mode it will use surface colour instead.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/docs/guides/theming#dark-theme) for more information.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { BottomNavigation, Text } from 'react-native-paper';\n *\n * const MusicRoute = () => <Text>Music</Text>;\n *\n * const AlbumsRoute = () => <Text>Albums</Text>;\n *\n * const RecentsRoute = () => <Text>Recents</Text>;\n *\n * const NotificationsRoute = () => <Text>Notifications</Text>;\n *\n * const MyComponent = () => {\n * const [index, setIndex] = React.useState(0);\n * const [routes] = React.useState([\n * { key: 'music', title: 'Favorites', focusedIcon: 'heart', unfocusedIcon: 'heart-outline'},\n * { key: 'albums', title: 'Albums', focusedIcon: 'album' },\n * { key: 'recents', title: 'Recents', focusedIcon: 'history' },\n * { key: 'notifications', title: 'Notifications', focusedIcon: 'bell', unfocusedIcon: 'bell-outline' },\n * ]);\n *\n * const renderScene = BottomNavigation.SceneMap({\n * music: MusicRoute,\n * albums: AlbumsRoute,\n * recents: RecentsRoute,\n * notifications: NotificationsRoute,\n * });\n *\n * return (\n * <BottomNavigation\n * navigationState={{ index, routes }}\n * onIndexChange={setIndex}\n * renderScene={renderScene}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst BottomNavigation = <Route extends BaseRoute>({\n navigationState,\n renderScene,\n renderIcon,\n renderLabel,\n renderTouchable,\n getLabelText,\n getBadge,\n getColor,\n getAccessibilityLabel,\n getTestID,\n activeColor,\n inactiveColor,\n keyboardHidesNavigationBar = Platform.OS === 'android',\n barStyle,\n labeled = true,\n style,\n activeIndicatorStyle,\n sceneAnimationEnabled = false,\n sceneAnimationType = 'opacity',\n sceneAnimationEasing,\n onTabPress,\n onTabLongPress,\n onIndexChange,\n shifting: shiftingProp,\n safeAreaInsets,\n labelMaxFontSizeMultiplier = 1,\n compact: compactProp,\n testID = 'bottom-navigation',\n theme: themeOverrides,\n getLazy = ({ route }: { route: Route }) => route.lazy,\n}: Props<Route>) => {\n const theme = useInternalTheme(themeOverrides);\n const { scale } = theme.animation;\n const compact = compactProp ?? !theme.isV3;\n let shifting =\n shiftingProp ?? (theme.isV3 ? false : navigationState.routes.length > 3);\n\n if (shifting && navigationState.routes.length < 2) {\n shifting = false;\n console.warn(\n 'BottomNavigation needs at least 2 tabs to run shifting animation'\n );\n }\n\n const focusedKey = navigationState.routes[navigationState.index].key;\n\n /**\n * Active state of individual tab item positions:\n * -1 if they're before the active tab, 0 if they're active, 1 if they're after the active tab\n */\n const tabsPositionAnims = useAnimatedValueArray(\n navigationState.routes.map((_, i) =>\n i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1\n )\n );\n\n /**\n * The top offset for each tab item to position it offscreen.\n * Placing items offscreen helps to save memory usage for inactive screens with removeClippedSubviews.\n * We use animated values for this to prevent unnecessary re-renders.\n */\n const offsetsAnims = useAnimatedValueArray(\n navigationState.routes.map(\n // offscreen === 1, normal === 0\n (_, i) => (i === navigationState.index ? 0 : 1)\n )\n );\n\n /**\n * List of loaded tabs, tabs will be loaded when navigated to.\n */\n const [loaded, setLoaded] = React.useState<string[]>([focusedKey]);\n\n if (!loaded.includes(focusedKey)) {\n // Set the current tab to be loaded if it was not loaded before\n setLoaded((loaded) => [...loaded, focusedKey]);\n }\n\n const animateToIndex = React.useCallback(\n (index: number) => {\n Animated.parallel([\n ...navigationState.routes.map((_, i) =>\n Animated.timing(tabsPositionAnims[i], {\n toValue: i === index ? 0 : i >= index ? 1 : -1,\n duration: theme.isV3 || shifting ? 150 * scale : 0,\n useNativeDriver: true,\n easing: sceneAnimationEasing,\n })\n ),\n ]).start(({ finished }) => {\n if (finished) {\n // Position all inactive screens offscreen to save memory usage\n // Only do it when animation has finished to avoid glitches mid-transition if switching fast\n offsetsAnims.forEach((offset, i) => {\n if (i === index) {\n offset.setValue(0);\n } else {\n offset.setValue(1);\n }\n });\n }\n });\n },\n [\n shifting,\n navigationState.routes,\n offsetsAnims,\n scale,\n tabsPositionAnims,\n sceneAnimationEasing,\n theme,\n ]\n );\n\n React.useEffect(() => {\n // Workaround for native animated bug in react-native@^0.57\n // Context: https://github.com/callstack/react-native-paper/pull/637\n animateToIndex(navigationState.index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const prevNavigationState = React.useRef<NavigationState<Route> | undefined>(\n undefined\n );\n\n React.useEffect(() => {\n // Reset offsets of previous and current tabs before animation\n offsetsAnims.forEach((offset, i) => {\n if (\n i === navigationState.index ||\n i === prevNavigationState.current?.index\n ) {\n offset.setValue(0);\n }\n });\n\n animateToIndex(navigationState.index);\n }, [navigationState.index, animateToIndex, offsetsAnims]);\n\n const handleTabPress = useLatestCallback(\n (event: { route: Route } & TabPressEvent) => {\n onTabPress?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n const index = navigationState.routes.findIndex(\n (route) => event.route.key === route.key\n );\n\n if (index !== navigationState.index) {\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n }\n }\n );\n\n const jumpTo = useLatestCallback((key: string) => {\n const index = navigationState.routes.findIndex(\n (route) => route.key === key\n );\n\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n });\n\n const { routes } = navigationState;\n const { colors } = theme;\n\n return (\n <View style={[styles.container, style]} testID={testID}>\n <View style={[styles.content, { backgroundColor: colors?.background }]}>\n {routes.map((route, index) => {\n if (getLazy({ route }) !== false && !loaded.includes(route.key)) {\n // Don't render a screen if we've never navigated to it\n return null;\n }\n\n const focused = navigationState.index === index;\n const previouslyFocused =\n prevNavigationState.current?.index === index;\n const countAlphaOffscreen =\n sceneAnimationEnabled && (focused || previouslyFocused);\n const renderToHardwareTextureAndroid =\n sceneAnimationEnabled && focused;\n\n const opacity = sceneAnimationEnabled\n ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [0, 1, 0],\n })\n : focused\n ? 1\n : 0;\n\n const offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n\n const top = sceneAnimationEnabled\n ? offsetsAnims[index].interpolate({\n inputRange: [0, 1],\n outputRange: [0, offsetTarget],\n })\n : offsetTarget;\n\n const left =\n sceneAnimationType === 'shifting'\n ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [-50, 0, 50],\n })\n : 0;\n\n const zIndex = focused ? 1 : 0;\n\n return (\n <BottomNavigationRouteScreen\n key={route.key}\n pointerEvents={focused ? 'auto' : 'none'}\n accessibilityElementsHidden={!focused}\n importantForAccessibility={\n focused ? 'auto' : 'no-hide-descendants'\n }\n index={index}\n visibility={opacity}\n style={[StyleSheet.absoluteFill, { zIndex }]}\n collapsable={false}\n removeClippedSubviews={\n // On iOS, set removeClippedSubviews to true only when not focused\n // This is an workaround for a bug where the clipped view never re-appears\n Platform.OS === 'ios' ? navigationState.index !== index : true\n }\n >\n <Animated.View\n {...(Platform.OS === 'android' && {\n needsOffscreenAlphaCompositing: countAlphaOffscreen,\n })}\n renderToHardwareTextureAndroid={renderToHardwareTextureAndroid}\n style={[\n styles.content,\n {\n opacity,\n transform: [{ translateX: left }, { translateY: top }],\n },\n ]}\n >\n {renderScene({ route, jumpTo })}\n </Animated.View>\n </BottomNavigationRouteScreen>\n );\n })}\n </View>\n <BottomNavigationBar\n navigationState={navigationState}\n renderIcon={renderIcon}\n renderLabel={renderLabel}\n renderTouchable={renderTouchable}\n getLabelText={getLabelText}\n getBadge={getBadge}\n getColor={getColor}\n getAccessibilityLabel={getAccessibilityLabel}\n getTestID={getTestID}\n activeColor={activeColor}\n inactiveColor={inactiveColor}\n keyboardHidesNavigationBar={keyboardHidesNavigationBar}\n style={barStyle}\n activeIndicatorStyle={activeIndicatorStyle}\n labeled={labeled}\n animationEasing={sceneAnimationEasing}\n onTabPress={handleTabPress}\n onTabLongPress={onTabLongPress}\n shifting={shifting}\n safeAreaInsets={safeAreaInsets}\n labelMaxFontSizeMultiplier={labelMaxFontSizeMultiplier}\n compact={compact}\n testID={`${testID}-bar`}\n theme={theme}\n />\n </View>\n );\n};\n\n/**\n * Function which takes a map of route keys to components.\n * Pure components are used to minimize re-rendering of the pages.\n * This drastically improves the animation performance.\n */\nBottomNavigation.SceneMap = <Route extends BaseRoute>(scenes: {\n [key: string]: React.ComponentType<{\n route: Route;\n jumpTo: (key: string) => void;\n }>;\n}) => {\n return ({\n route,\n jumpTo,\n }: {\n route: Route;\n jumpTo: (key: string) => void;\n }) => (\n <SceneComponent\n key={route.key}\n component={scenes[route.key ? route.key : '']}\n route={route}\n jumpTo={jumpTo}\n />\n );\n};\n\n// @component ./BottomNavigationBar.tsx\nBottomNavigation.Bar = BottomNavigationBar;\n\nexport default BottomNavigation;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n content: {\n flex: 1,\n },\n});\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}