This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
reValuate/node_modules/react-native-screens/lib/commonjs/createNativeStackNavigator.js.map
2021-04-02 02:24:13 +03:00

1 line
20 KiB
Plaintext

{"version":3,"sources":["createNativeStackNavigator.js"],"names":["renderComponentOrThunk","componentOrThunk","props","REMOVE_ACTION","StackView","React","Component","route","navigation","dispatch","type","immediate","key","descriptor","options","onAppear","StackActions","completeTransition","toChildKey","state","routes","lastRoute","length","index","navigationConfig","headerMode","backButtonInCustomView","direction","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerHideBackButton","headerLargeTitleStyle","headerStyle","headerTintColor","headerTitleStyle","headerTopInsetEnabled","hideShadow","largeTitle","statusBarAnimation","statusBarHidden","statusBarStyle","title","translucent","scene","headerOptions","backTitle","backTitleFontFamily","fontFamily","backTitleFontSize","fontSize","color","topInsetEnabled","hideBackButton","largeTitleBackgroundColor","backgroundColor","largeTitleColor","largeTitleFontFamily","largeTitleFontSize","titleColor","titleFontFamily","titleFontSize","undefined","hasHeader","header","blurEffect","children","backButtonImage","push","headerLeft","headerBackImage","goBack","requestAnimationFrame","headerPressColorAndroid","backButtonTitle","truncatedBackButtonTitle","backTitleVisible","layoutPreset","headerTitle","headerRight","getComponent","mode","transparentCard","SceneComponent","stackPresentation","cardTransparent","stackAnimation","animationEnabled","screenProps","StyleSheet","absoluteFill","cardStyle","replaceAnimation","Platform","OS","gestureEnabled","_onAppear","_removeScene","_renderHeaderConfig","render","descriptors","styles","scenes","_onFinishTransitioning","map","i","_renderScene","create","flex","createStackNavigator","routeConfigMap","stackConfig","router","superGetStateForAction","getStateForAction","action","backRouteIndex","backRoute","find","indexOf","newRoutes","splice","isTransitioning"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport {\n Screen,\n ScreenStack,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n} from 'react-native-screens';\nimport {\n createNavigator,\n SceneView,\n StackActions,\n StackRouter,\n} from 'react-navigation';\nimport { HeaderBackButton } from 'react-navigation-stack';\n\nfunction renderComponentOrThunk(componentOrThunk, props) {\n if (typeof componentOrThunk === 'function') {\n return componentOrThunk(props);\n }\n return componentOrThunk;\n}\n\nconst REMOVE_ACTION = 'NativeStackNavigator/REMOVE';\n\nclass StackView extends React.Component {\n _removeScene = (route) => {\n this.props.navigation.dispatch({\n type: REMOVE_ACTION,\n immediate: true,\n key: route.key,\n });\n };\n\n _onAppear = (route, descriptor) => {\n descriptor.options &&\n descriptor.options.onAppear &&\n descriptor.options.onAppear();\n this.props.navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: route.key,\n key: this.props.navigation.state.key,\n })\n );\n };\n\n _onFinishTransitioning = () => {\n const { routes } = this.props.navigation.state;\n const lastRoute = routes?.length && routes[routes.length - 1];\n\n if (lastRoute) {\n this.props.navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: lastRoute.key,\n key: this.props.navigation.state.key,\n })\n );\n }\n };\n\n _renderHeaderConfig = (index, route, descriptor) => {\n const { navigationConfig } = this.props;\n const { options } = descriptor;\n const { headerMode } = navigationConfig;\n\n const {\n backButtonInCustomView,\n direction,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible,\n headerHideBackButton,\n headerLargeTitleStyle,\n headerStyle,\n headerTintColor,\n headerTitleStyle,\n headerTopInsetEnabled = true,\n hideShadow,\n largeTitle,\n statusBarAnimation,\n statusBarHidden,\n statusBarStyle,\n title,\n translucent,\n } = options;\n\n const scene = {\n index,\n key: route.key,\n route,\n descriptor,\n };\n\n const headerOptions = {\n backButtonInCustomView,\n backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,\n backTitleFontFamily:\n headerBackTitleStyle && headerBackTitleStyle.fontFamily,\n backTitleFontSize: headerBackTitleStyle && headerBackTitleStyle.fontSize,\n color: headerTintColor,\n direction,\n topInsetEnabled: headerTopInsetEnabled,\n hideBackButton: headerHideBackButton,\n hideShadow,\n largeTitle,\n largeTitleBackgroundColor:\n headerLargeTitleStyle && headerLargeTitleStyle.backgroundColor,\n largeTitleColor: headerLargeTitleStyle && headerLargeTitleStyle.color,\n largeTitleFontFamily:\n headerLargeTitleStyle && headerLargeTitleStyle.fontFamily,\n largeTitleFontSize:\n headerLargeTitleStyle && headerLargeTitleStyle.fontSize,\n statusBarAnimation,\n statusBarHidden,\n statusBarStyle,\n title,\n titleColor:\n (headerTitleStyle && headerTitleStyle.color) || headerTintColor,\n titleFontFamily: headerTitleStyle && headerTitleStyle.fontFamily,\n titleFontSize: headerTitleStyle && headerTitleStyle.fontSize,\n translucent: translucent === undefined ? false : translucent,\n };\n\n const hasHeader = headerMode !== 'none' && options.header !== null;\n if (!hasHeader) {\n return <ScreenStackHeaderConfig {...headerOptions} hidden />;\n }\n\n if (headerStyle !== undefined) {\n headerOptions.backgroundColor = headerStyle.backgroundColor;\n headerOptions.blurEffect = headerStyle.blurEffect;\n }\n\n const children = [];\n\n if (options.backButtonImage) {\n children.push(\n <ScreenStackHeaderBackButtonImage\n key=\"backImage\"\n source={options.backButtonImage}\n />\n );\n }\n\n if (options.headerLeft !== undefined) {\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n {renderComponentOrThunk(options.headerLeft, { scene })}\n </ScreenStackHeaderLeftView>\n );\n } else if (options.headerBackImage !== undefined) {\n const goBack = () => {\n // Go back on next tick because button ripple effect needs to happen on Android\n requestAnimationFrame(() => {\n descriptor.navigation.goBack(descriptor.key);\n });\n };\n\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n <HeaderBackButton\n onPress={goBack}\n pressColorAndroid={options.headerPressColorAndroid}\n tintColor={options.headerTintColor}\n backImage={options.headerBackImage}\n title={options.backButtonTitle}\n truncatedTitle={options.truncatedBackButtonTitle}\n backTitleVisible={this.props.backTitleVisible}\n titleStyle={options.headerBackTitleStyle}\n layoutPreset={this.props.layoutPreset}\n scene={scene}\n />\n </ScreenStackHeaderLeftView>\n );\n }\n\n if (options.headerTitle) {\n if (title === undefined && typeof options.headerTitle === 'string') {\n headerOptions.title = options.headerTitle;\n } else {\n children.push(\n <ScreenStackHeaderCenterView key=\"center\">\n {renderComponentOrThunk(options.headerTitle, { scene })}\n </ScreenStackHeaderCenterView>\n );\n }\n }\n\n if (options.headerRight) {\n children.push(\n <ScreenStackHeaderRightView key=\"right\">\n {renderComponentOrThunk(options.headerRight, { scene })}\n </ScreenStackHeaderRightView>\n );\n }\n\n if (children.length > 0) {\n headerOptions.children = children;\n }\n\n return <ScreenStackHeaderConfig {...headerOptions} />;\n };\n\n _renderScene = (index, route, descriptor) => {\n const { navigation, getComponent, options } = descriptor;\n const { mode, transparentCard } = this.props.navigationConfig;\n const SceneComponent = getComponent();\n\n let stackPresentation = 'push';\n if (mode === 'modal' || mode === 'containedModal') {\n stackPresentation = mode;\n if (transparentCard || options.cardTransparent) {\n stackPresentation =\n mode === 'containedModal'\n ? 'containedTransparentModal'\n : 'transparentModal';\n }\n }\n\n let stackAnimation = options.stackAnimation;\n if (options.animationEnabled === false) {\n stackAnimation = 'none';\n }\n\n const { screenProps } = this.props;\n return (\n <Screen\n key={`screen_${route.key}`}\n style={[StyleSheet.absoluteFill, options.cardStyle]}\n stackAnimation={stackAnimation}\n stackPresentation={stackPresentation}\n replaceAnimation={\n options.replaceAnimation === undefined\n ? 'pop'\n : options.replaceAnimation\n }\n pointerEvents={\n index === this.props.navigation.state.routes.length - 1\n ? 'auto'\n : 'none'\n }\n gestureEnabled={\n Platform.OS === 'android'\n ? false\n : options.gestureEnabled === undefined\n ? true\n : options.gestureEnabled\n }\n onAppear={() => this._onAppear(route, descriptor)}\n onDismissed={() => this._removeScene(route)}>\n {this._renderHeaderConfig(index, route, descriptor)}\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n </Screen>\n );\n };\n\n render() {\n const { navigation, descriptors } = this.props;\n\n return (\n <ScreenStack\n style={styles.scenes}\n onFinishTransitioning={this._onFinishTransitioning}>\n {navigation.state.routes.map((route, i) =>\n this._renderScene(i, route, descriptors[route.key])\n )}\n </ScreenStack>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n scenes: { flex: 1 },\n});\n\nfunction createStackNavigator(routeConfigMap, stackConfig = {}) {\n const router = StackRouter(routeConfigMap, stackConfig);\n\n // belowe we override getStateForAction method in order to add handling for\n // a custom native stack navigation action. The action REMOVE that we want to\n // add works in a similar way to POP, but it does not remove all the routes\n // that sit on top of the removed route. For example if we have three routes\n // [a,b,c] and call POP on b, then both b and c will go away. In case we\n // call REMOVE on b, only b will be removed from the stack and the resulting\n // state will be [a, c]\n const superGetStateForAction = router.getStateForAction;\n router.getStateForAction = (action, state) => {\n if (action.type === REMOVE_ACTION) {\n const { key, immediate } = action;\n let backRouteIndex = state.index;\n if (key) {\n const backRoute = state.routes.find((route) => route.key === key);\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n const newRoutes = [...state.routes];\n newRoutes.splice(backRouteIndex, 1);\n return {\n ...state,\n routes: newRoutes,\n index: newRoutes.length - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n return superGetStateForAction(action, state);\n };\n // Create a navigator with StackView as the view\n return createNavigator(StackView, router, stackConfig);\n}\n\nexport default createStackNavigator;\n"]}