UNPKG

repoweaver

Version:

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

1 lines 40.5 kB
{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nconst _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\";\nconst FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\nconst SceneComponent = React.memo(_ref => {\n let {\n component\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n return React.createElement(component, rest);\n});\nconst BottomNavigation = ({\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 = ({\n route\n }) => route.lazy\n}) => {\n const theme = useInternalTheme(themeOverrides);\n const {\n scale\n } = theme.animation;\n const compact = compactProp ?? !theme.isV3;\n let shifting = 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 const focusedKey = navigationState.routes[navigationState.index].key;\n const tabsPositionAnims = useAnimatedValueArray(navigationState.routes.map((_, i) => i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1));\n const offsetsAnims = useAnimatedValueArray(navigationState.routes.map((_, i) => i === navigationState.index ? 0 : 1));\n const [loaded, setLoaded] = React.useState([focusedKey]);\n if (!loaded.includes(focusedKey)) {\n setLoaded(loaded => [...loaded, focusedKey]);\n }\n const animateToIndex = React.useCallback(index => {\n Animated.parallel([...navigationState.routes.map((_, i) => 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 }))]).start(({\n finished\n }) => {\n if (finished) {\n offsetsAnims.forEach((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(() => {\n animateToIndex(navigationState.index);\n }, []);\n const prevNavigationState = React.useRef(undefined);\n React.useEffect(() => {\n offsetsAnims.forEach((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 const handleTabPress = useLatestCallback(event => {\n onTabPress === null || onTabPress === void 0 || onTabPress(event);\n if (event.defaultPrevented) {\n return;\n }\n const index = navigationState.routes.findIndex(route => event.route.key === route.key);\n if (index !== navigationState.index) {\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n }\n });\n const jumpTo = useLatestCallback(key => {\n const index = navigationState.routes.findIndex(route => route.key === key);\n prevNavigationState.current = navigationState;\n onIndexChange(index);\n });\n const {\n routes\n } = navigationState;\n const {\n colors\n } = theme;\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((route, index) => {\n var _prevNavigationState$2;\n if (getLazy({\n route\n }) !== false && !loaded.includes(route.key)) {\n return null;\n }\n const focused = navigationState.index === index;\n const previouslyFocused = ((_prevNavigationState$2 = prevNavigationState.current) === null || _prevNavigationState$2 === void 0 ? void 0 : _prevNavigationState$2.index) === index;\n const countAlphaOffscreen = sceneAnimationEnabled && (focused || previouslyFocused);\n const renderToHardwareTextureAndroid = sceneAnimationEnabled && focused;\n const opacity = sceneAnimationEnabled ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [0, 1, 0]\n }) : focused ? 1 : 0;\n const offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n const top = sceneAnimationEnabled ? offsetsAnims[index].interpolate({\n inputRange: [0, 1],\n outputRange: [0, offsetTarget]\n }) : offsetTarget;\n const left = sceneAnimationType === 'shifting' ? tabsPositionAnims[index].interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [-50, 0, 50]\n }) : 0;\n const 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\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,\n transform: [{\n translateX: left\n }, {\n translateY: top\n }]\n }]\n }), renderScene({\n route,\n 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 = scenes => {\n return ({\n route,\n jumpTo\n }) => React.createElement(SceneComponent, {\n key: route.key,\n component: scenes[route.key ? route.key : ''],\n route: route,\n jumpTo: jumpTo\n });\n};\nBottomNavigation.Bar = BottomNavigationBar;\nexport default BottomNavigation;\nconst 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","_objectWithoutPropertiesLoose","_excluded","createElement","BottomNavigation","navigationState","renderScene","renderIcon","renderLabel","renderTouchable","getLabelText","getBadge","getColor","getAccessibilityLabel","getTestID","activeColor","inactiveColor","keyboardHidesNavigationBar","barStyle","labeled","style","activeIndicatorStyle","sceneAnimationEnabled","sceneAnimationType","sceneAnimationEasing","onTabPress","onTabLongPress","onIndexChange","shifting","shiftingProp","safeAreaInsets","labelMaxFontSizeMultiplier","compact","compactProp","testID","theme","themeOverrides","getLazy","route","lazy","scale","animation","isV3","routes","length","console","warn","focusedKey","index","key","tabsPositionAnims","map","_","i","offsetsAnims","loaded","setLoaded","useState","includes","animateToIndex","useCallback","parallel","timing","toValue","duration","useNativeDriver","easing","start","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","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":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}