@react-navigation/stack 6.3.4 → 6.3.7
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.
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +1 -1
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -1
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigators/createStackNavigator.js +1 -1
- package/lib/commonjs/navigators/createStackNavigator.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/CardAnimationContext.js.map +1 -1
- package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -1
- package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -1
- package/lib/commonjs/utils/conditional.js.map +1 -1
- package/lib/commonjs/utils/debounce.js.map +1 -1
- package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -1
- package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -1
- package/lib/commonjs/utils/memoize.js.map +1 -1
- package/lib/commonjs/utils/useCardAnimation.js.map +1 -1
- package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -1
- package/lib/commonjs/utils/useKeyboardManager.js.map +1 -1
- package/lib/commonjs/views/GestureHandler.android.js.map +1 -1
- package/lib/commonjs/views/GestureHandler.ios.js.map +1 -1
- package/lib/commonjs/views/GestureHandler.js.map +1 -1
- package/lib/commonjs/views/GestureHandlerNative.js +1 -1
- package/lib/commonjs/views/GestureHandlerNative.js.map +1 -1
- package/lib/commonjs/views/Header/Header.js +1 -1
- package/lib/commonjs/views/Header/Header.js.map +1 -1
- package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -1
- package/lib/commonjs/views/Header/HeaderSegment.js +1 -1
- package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -1
- package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -1
- package/lib/commonjs/views/Screens.js +1 -1
- package/lib/commonjs/views/Screens.js.map +1 -1
- package/lib/commonjs/views/Stack/Card.js +1 -1
- package/lib/commonjs/views/Stack/Card.js.map +1 -1
- package/lib/commonjs/views/Stack/CardContainer.js.map +1 -1
- package/lib/commonjs/views/Stack/CardSheet.js +1 -1
- package/lib/commonjs/views/Stack/CardSheet.js.map +1 -1
- package/lib/commonjs/views/Stack/CardStack.js.map +1 -1
- package/lib/commonjs/views/Stack/StackView.js +1 -1
- package/lib/commonjs/views/Stack/StackView.js.map +1 -1
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js +1 -1
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
- package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -1
- package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createStackNavigator.js +1 -1
- package/lib/module/navigators/createStackNavigator.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/CardAnimationContext.js.map +1 -1
- package/lib/module/utils/GestureHandlerRefContext.js.map +1 -1
- package/lib/module/utils/ModalPresentationContext.js.map +1 -1
- package/lib/module/utils/conditional.js.map +1 -1
- package/lib/module/utils/debounce.js.map +1 -1
- package/lib/module/utils/getDistanceForDirection.js.map +1 -1
- package/lib/module/utils/getInvertedMultiplier.js.map +1 -1
- package/lib/module/utils/memoize.js.map +1 -1
- package/lib/module/utils/useCardAnimation.js.map +1 -1
- package/lib/module/utils/useGestureHandlerRef.js.map +1 -1
- package/lib/module/utils/useKeyboardManager.js.map +1 -1
- package/lib/module/views/GestureHandler.android.js.map +1 -1
- package/lib/module/views/GestureHandler.ios.js.map +1 -1
- package/lib/module/views/GestureHandler.js.map +1 -1
- package/lib/module/views/GestureHandlerNative.js +1 -1
- package/lib/module/views/GestureHandlerNative.js.map +1 -1
- package/lib/module/views/Header/Header.js +1 -1
- package/lib/module/views/Header/Header.js.map +1 -1
- package/lib/module/views/Header/HeaderContainer.js.map +1 -1
- package/lib/module/views/Header/HeaderSegment.js +1 -1
- package/lib/module/views/Header/HeaderSegment.js.map +1 -1
- package/lib/module/views/ModalStatusBarManager.js.map +1 -1
- package/lib/module/views/Screens.js +1 -1
- package/lib/module/views/Screens.js.map +1 -1
- package/lib/module/views/Stack/Card.js +1 -1
- package/lib/module/views/Stack/Card.js.map +1 -1
- package/lib/module/views/Stack/CardContainer.js.map +1 -1
- package/lib/module/views/Stack/CardSheet.js +1 -1
- package/lib/module/views/Stack/CardSheet.js.map +1 -1
- package/lib/module/views/Stack/CardStack.js.map +1 -1
- package/lib/module/views/Stack/StackView.js +1 -1
- package/lib/module/views/Stack/StackView.js.map +1 -1
- package/package.json +5 -5
- package/src/TransitionConfigs/CardStyleInterpolators.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderContainer.tsx"],"names":["HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","React","useContext","HeaderBackContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","forSlideUp","forSlideRight","forSlideLeft","forNoAnimation","e","height","nativeEvent","undefined","styles","StyleSheet","create","position","top","left","right"],"mappings":"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","sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"]}
|
|
1
|
+
{"version":3,"names":["HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","React","useContext","HeaderBackContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","getHeaderTitle","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","forSlideUp","forSlideRight","forSlideLeft","forNoAnimation","e","height","nativeEvent","undefined","styles","StyleSheet","create","position","top","left","right"],"sources":["HeaderContainer.tsx"],"sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
|
|
22
|
-
function _extends() { _extends = Object.assign
|
|
22
|
+
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); }
|
|
23
23
|
|
|
24
24
|
function HeaderSegment(props) {
|
|
25
25
|
const [leftLabelLayout, setLeftLabelLayout] = React.useState(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderSegment.tsx"],"names":["HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","React","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerRight","right","headerBackImage","headerBackTitle","headerBackTitleVisible","Platform","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","StyleSheet","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"mappings":"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","sourcesContent":["import {\n getDefaultHeaderHeight,\n Header,\n HeaderBackButton,\n HeaderBackButtonProps,\n HeaderTitle,\n} from '@react-navigation/elements';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type {\n Layout,\n SceneProgress,\n StackHeaderOptions,\n StackHeaderStyleInterpolator,\n} from '../../types';\nimport memoize from '../../utils/memoize';\n\ntype Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {\n headerStatusBarHeight: number;\n layout: Layout;\n title: string;\n modal: boolean;\n onGoBack?: () => void;\n progress: SceneProgress;\n styleInterpolator: StackHeaderStyleInterpolator;\n};\n\nexport default function HeaderSegment(props: Props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState<\n Layout | undefined\n >(undefined);\n\n const [titleLayout, setTitleLayout] = React.useState<Layout | undefined>(\n undefined\n );\n\n const handleTitleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setTitleLayout((titleLayout) => {\n if (\n titleLayout &&\n height === titleLayout.height &&\n width === titleLayout.width\n ) {\n return titleLayout;\n }\n\n return { height, width };\n });\n };\n\n const handleLeftLabelLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n if (\n leftLabelLayout &&\n height === leftLabelLayout.height &&\n width === leftLabelLayout.width\n ) {\n return;\n }\n\n setLeftLabelLayout({ height, width });\n };\n\n const getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackHeaderStyleInterpolator,\n layout: Layout,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n titleLayout: Layout | undefined,\n leftLabelLayout: Layout | undefined,\n headerHeight: number\n ) =>\n styleInterpolator({\n current: { progress: current },\n next: next && { progress: next },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width,\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout,\n },\n })\n );\n\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack\n ? (props: HeaderBackButtonProps) => <HeaderBackButton {...props} />\n : undefined,\n headerRight: right,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const { height = defaultHeight } = StyleSheet.flatten(\n customHeaderStyle || {}\n ) as ViewStyle;\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle,\n } = getInterpolatedStyle(\n styleInterpolator,\n layout,\n progress.current,\n progress.next,\n titleLayout,\n headerBackTitle ? leftLabelLayout : undefined,\n typeof height === 'number' ? height : defaultHeight\n );\n\n const headerLeft: StackHeaderOptions['headerLeft'] = left\n ? (props) =>\n left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerRight: StackHeaderOptions['headerRight'] = right\n ? (props) =>\n right({\n ...props,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerTitle: StackHeaderOptions['headerTitle'] =\n typeof title !== 'function'\n ? (props) => <HeaderTitle {...props} onLayout={handleTitleLayout} />\n : (props) => title({ ...props, onLayout: handleTitleLayout });\n\n return (\n <Header\n modal={modal}\n layout={layout}\n headerTitle={headerTitle}\n headerLeft={headerLeft}\n headerLeftLabelVisible={headerBackTitleVisible}\n headerRight={headerRight}\n headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}\n headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}\n headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}\n headerBackgroundContainerStyle={[\n backgroundStyle,\n headerBackgroundContainerStyle,\n ]}\n headerStyle={customHeaderStyle}\n headerStatusBarHeight={headerStatusBarHeight}\n {...rest}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"names":["HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","React","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","memoize","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerRight","right","headerBackImage","headerBackTitle","headerBackTitleVisible","Platform","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","getDefaultHeaderHeight","StyleSheet","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"sources":["HeaderSegment.tsx"],"sourcesContent":["import {\n getDefaultHeaderHeight,\n Header,\n HeaderBackButton,\n HeaderBackButtonProps,\n HeaderTitle,\n} from '@react-navigation/elements';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type {\n Layout,\n SceneProgress,\n StackHeaderOptions,\n StackHeaderStyleInterpolator,\n} from '../../types';\nimport memoize from '../../utils/memoize';\n\ntype Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {\n headerStatusBarHeight: number;\n layout: Layout;\n title: string;\n modal: boolean;\n onGoBack?: () => void;\n progress: SceneProgress;\n styleInterpolator: StackHeaderStyleInterpolator;\n};\n\nexport default function HeaderSegment(props: Props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState<\n Layout | undefined\n >(undefined);\n\n const [titleLayout, setTitleLayout] = React.useState<Layout | undefined>(\n undefined\n );\n\n const handleTitleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setTitleLayout((titleLayout) => {\n if (\n titleLayout &&\n height === titleLayout.height &&\n width === titleLayout.width\n ) {\n return titleLayout;\n }\n\n return { height, width };\n });\n };\n\n const handleLeftLabelLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n if (\n leftLabelLayout &&\n height === leftLabelLayout.height &&\n width === leftLabelLayout.width\n ) {\n return;\n }\n\n setLeftLabelLayout({ height, width });\n };\n\n const getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackHeaderStyleInterpolator,\n layout: Layout,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n titleLayout: Layout | undefined,\n leftLabelLayout: Layout | undefined,\n headerHeight: number\n ) =>\n styleInterpolator({\n current: { progress: current },\n next: next && { progress: next },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width,\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout,\n },\n })\n );\n\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack\n ? (props: HeaderBackButtonProps) => <HeaderBackButton {...props} />\n : undefined,\n headerRight: right,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const { height = defaultHeight } = StyleSheet.flatten(\n customHeaderStyle || {}\n ) as ViewStyle;\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle,\n } = getInterpolatedStyle(\n styleInterpolator,\n layout,\n progress.current,\n progress.next,\n titleLayout,\n headerBackTitle ? leftLabelLayout : undefined,\n typeof height === 'number' ? height : defaultHeight\n );\n\n const headerLeft: StackHeaderOptions['headerLeft'] = left\n ? (props) =>\n left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerRight: StackHeaderOptions['headerRight'] = right\n ? (props) =>\n right({\n ...props,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerTitle: StackHeaderOptions['headerTitle'] =\n typeof title !== 'function'\n ? (props) => <HeaderTitle {...props} onLayout={handleTitleLayout} />\n : (props) => title({ ...props, onLayout: handleTitleLayout });\n\n return (\n <Header\n modal={modal}\n layout={layout}\n headerTitle={headerTitle}\n headerLeft={headerLeft}\n headerLeftLabelVisible={headerBackTitleVisible}\n headerRight={headerRight}\n headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}\n headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}\n headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}\n headerBackgroundContainerStyle={[\n backgroundStyle,\n headerBackgroundContainerStyle,\n ]}\n headerStyle={customHeaderStyle}\n headerStatusBarHeight={headerStatusBarHeight}\n {...rest}\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ModalStatusBarManager","dark","layout","insets","style","darkTheme","useTheme","overlapping","setOverlapping","React","useState","scale","width","offset","top","flattenedStyle","StyleSheet","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent"],"sources":["ModalStatusBarManager.tsx"],"sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StatusBar, StyleSheet } from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport type { Layout } from '../types';\n\ntype Props = {\n dark: boolean | undefined;\n layout: Layout;\n insets: EdgeInsets;\n style: any;\n};\n\nexport default function ModalStatusBarManager({\n dark,\n layout,\n insets,\n style,\n}: Props) {\n const { dark: darkTheme } = useTheme();\n const [overlapping, setOverlapping] = React.useState(true);\n\n const scale = 1 - 20 / layout.width;\n const offset = (insets.top - 34) * scale;\n\n const flattenedStyle = StyleSheet.flatten(style);\n const translateY = flattenedStyle?.transform?.find(\n (s: any) => s.translateY !== undefined\n )?.translateY;\n\n React.useEffect(() => {\n const listener = ({ value }: { value: number }) => {\n setOverlapping(value < offset);\n };\n\n const sub = translateY?.addListener(listener);\n\n return () => translateY?.removeListener(sub);\n }, [offset, translateY]);\n\n const darkContent = dark ?? !darkTheme;\n\n return (\n <StatusBar\n animated\n barStyle={overlapping && darkContent ? 'dark-content' : 'light-content'}\n />\n );\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAYe,SAASA,qBAAT,OAKL;EAAA;;EAAA,IALoC;IAC5CC,IAD4C;IAE5CC,MAF4C;IAG5CC,MAH4C;IAI5CC;EAJ4C,CAKpC;EACR,MAAM;IAAEH,IAAI,EAAEI;EAAR,IAAsB,IAAAC,gBAAA,GAA5B;EACA,MAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC;EAEA,MAAMC,KAAK,GAAG,IAAI,KAAKT,MAAM,CAACU,KAA9B;EACA,MAAMC,MAAM,GAAG,CAACV,MAAM,CAACW,GAAP,GAAa,EAAd,IAAoBH,KAAnC;;EAEA,MAAMI,cAAc,GAAGC,uBAAA,CAAWC,OAAX,CAAmBb,KAAnB,CAAvB;;EACA,MAAMc,UAAU,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,SAAnB,oFAAG,sBAA2BC,IAA3B,CAChBC,CAAD,IAAYA,CAAC,CAACH,UAAF,KAAiBI,SADZ,CAAH,2DAAG,uBAEhBJ,UAFH;EAIAT,KAAK,CAACc,SAAN,CAAgB,MAAM;IACpB,MAAMC,QAAQ,GAAG,SAAkC;MAAA,IAAjC;QAAEC;MAAF,CAAiC;MACjDjB,cAAc,CAACiB,KAAK,GAAGZ,MAAT,CAAd;IACD,CAFD;;IAIA,MAAMa,GAAG,GAAGR,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAES,WAAZ,CAAwBH,QAAxB,CAAZ;IAEA,OAAO,MAAMN,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEU,cAAZ,CAA2BF,GAA3B,CAAb;EACD,CARD,EAQG,CAACb,MAAD,EAASK,UAAT,CARH;EAUA,MAAMW,WAAW,GAAG5B,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAW,CAACI,SAA7B;EAEA,oBACE,oBAAC,sBAAD;IACE,QAAQ,MADV;IAEE,QAAQ,EAAEE,WAAW,IAAIsB,WAAf,GAA6B,cAA7B,GAA8C;EAF1D,EADF;AAMD"}
|
|
@@ -13,7 +13,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _extends() { _extends = Object.assign
|
|
16
|
+
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); }
|
|
17
17
|
|
|
18
18
|
let Screens;
|
|
19
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Screens","require","e","MaybeScreenContainer","enabled","rest","MaybeScreen","active"],"sources":["Screens.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Animated, View, ViewProps } from 'react-native';\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 children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return <Screens.ScreenContainer enabled={enabled} {...rest} />;\n }\n\n return <View {...rest} />;\n};\n\nexport const MaybeScreen = ({\n enabled,\n active,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n active: 0 | 1 | Animated.AnimatedInterpolation;\n children: React.ReactNode;\n freezeOnBlur?: boolean;\n}) => {\n if (Screens != null) {\n return (\n <Screens.Screen enabled={enabled} activityState={active} {...rest} />\n );\n }\n\n return <View {...rest} />;\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,IAAIA,OAAJ;;AAEA,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAEM,MAAMC,oBAAoB,GAAG,QAM9B;EAAA,IAN+B;IACnCC,OADmC;IAEnC,GAAGC;EAFgC,CAM/B;;EACJ,IAAIL,OAAO,IAAI,IAAf,EAAqB;IACnB,oBAAO,oBAAC,OAAD,CAAS,eAAT;MAAyB,OAAO,EAAEI;IAAlC,GAA+CC,IAA/C,EAAP;EACD;;EAED,oBAAO,oBAAC,iBAAD,EAAUA,IAAV,CAAP;AACD,CAZM;;;;AAcA,MAAMC,WAAW,GAAG,SASrB;EAAA,IATsB;IAC1BF,OAD0B;IAE1BG,MAF0B;IAG1B,GAAGF;EAHuB,CAStB;;EACJ,IAAIL,OAAO,IAAI,IAAf,EAAqB;IACnB,oBACE,oBAAC,OAAD,CAAS,MAAT;MAAgB,OAAO,EAAEI,OAAzB;MAAkC,aAAa,EAAEG;IAAjD,GAA6DF,IAA7D,EADF;EAGD;;EAED,oBAAO,oBAAC,iBAAD,EAAUA,IAAV,CAAP;AACD,CAjBM"}
|
|
@@ -33,7 +33,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
33
33
|
|
|
34
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
35
|
|
|
36
|
-
function _extends() { _extends = Object.assign
|
|
36
|
+
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); }
|
|
37
37
|
|
|
38
38
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
39
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Card.tsx"],"names":["GESTURE_VELOCITY_IMPACT","TRUE","FALSE","GESTURE_RESPONSE_DISTANCE_HORIZONTAL","GESTURE_RESPONSE_DISTANCE_VERTICAL","useNativeDriver","Platform","OS","hasOpacityStyle","style","flattenedStyle","StyleSheet","flatten","opacity","Card","React","Component","Animated","Value","props","gestureDirection","width","layout","height","closing","velocity","gesture","transitionSpec","onOpen","onClose","onTransition","toValue","getAnimateToValue","lastToValue","isClosing","setValue","spec","close","open","animation","spring","timing","setPointerEventsEnabled","handleStartInteraction","clearTimeout","pendingGestureCallback","undefined","config","isInteraction","start","finished","handleEndInteraction","isCurrentlyMounted","forceUpdate","enabled","pointerEvents","ref","current","setPointerEvents","interactionHandle","InteractionManager","createInteractionHandle","clearInteractionHandle","nativeEvent","onGestureBegin","onGestureCanceled","onGestureEnd","gestureVelocityImpact","state","GestureState","ACTIVE","isSwiping","CANCELLED","velocityY","velocityX","animate","END","distance","translation","translationY","translationX","setTimeout","styleInterpolator","interpolationIndex","next","insetTop","insetRight","insetBottom","insetLeft","index","progress","swiping","inverted","layouts","screen","insets","top","right","bottom","left","createRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","stopAnimation","gestureActivationCriteria","gestureResponseDistance","enableTrackpadTwoFingerGesture","maxDeltaX","minOffsetY","hitSlop","invertedMultiplier","minOffsetX","maxDeltaY","render","overlay","overlayEnabled","shadowEnabled","gestureEnabled","pageOverflowEnabled","headerDarkContent","children","containerStyle","customContainerStyle","contentStyle","rest","interpolationProps","getCardAnimation","interpolatedStyle","getInterpolatedStyle","cardStyle","overlayStyle","shadowStyle","handleGestureEvent","event","backgroundColor","isTransparent","alpha","getIsModalPresentation","absoluteFill","styles","container","handleGestureStateChange","shadow","shadowHorizontal","shadowLeft","shadowRight","shadowVertical","shadowTop","shadowBottom","cardStyleInterpolator","forModalPresentationIOS","name","create","flex","position","shadowRadius","shadowColor","shadowOpacity","shadowOffset"],"mappings":"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","sourcesContent":["import Color from 'color';\nimport * as React from 'react';\nimport {\n Animated,\n InteractionManager,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';\nimport type {\n GestureDirection,\n Layout,\n StackCardInterpolationProps,\n StackCardStyleInterpolator,\n TransitionSpec,\n} from '../../types';\nimport CardAnimationContext from '../../utils/CardAnimationContext';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport getInvertedMultiplier from '../../utils/getInvertedMultiplier';\nimport memoize from '../../utils/memoize';\nimport {\n GestureState,\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n} from '../GestureHandler';\nimport ModalStatusBarManager from '../ModalStatusBarManager';\nimport CardSheet, { CardSheetRef } from './CardSheet';\n\ntype Props = ViewProps & {\n interpolationIndex: number;\n closing: boolean;\n next?: Animated.AnimatedInterpolation;\n current: Animated.AnimatedInterpolation;\n gesture: Animated.Value;\n layout: Layout;\n insets: EdgeInsets;\n headerDarkContent: boolean | undefined;\n pageOverflowEnabled: boolean;\n gestureDirection: GestureDirection;\n onOpen: () => void;\n onClose: () => void;\n onTransition: (props: { closing: boolean; gesture: boolean }) => void;\n onGestureBegin: () => void;\n onGestureCanceled: () => void;\n onGestureEnd: () => void;\n children: React.ReactNode;\n overlay: (props: {\n style: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n }) => React.ReactNode;\n overlayEnabled: boolean;\n shadowEnabled: boolean;\n gestureEnabled: boolean;\n gestureResponseDistance?: number;\n gestureVelocityImpact: number;\n transitionSpec: {\n open: TransitionSpec;\n close: TransitionSpec;\n };\n styleInterpolator: StackCardStyleInterpolator;\n containerStyle?: StyleProp<ViewStyle>;\n contentStyle?: StyleProp<ViewStyle>;\n};\n\nconst GESTURE_VELOCITY_IMPACT = 0.3;\n\nconst TRUE = 1;\nconst FALSE = 0;\n\n/**\n * The distance of touch start from the edge of the screen where the gesture will be recognized\n */\nconst GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;\nconst GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;\n\nconst useNativeDriver = Platform.OS !== 'web';\n\nconst hasOpacityStyle = (style: any) => {\n if (style) {\n const flattenedStyle = StyleSheet.flatten(style);\n return flattenedStyle.opacity != null;\n }\n\n return false;\n};\n\nexport default class Card extends React.Component<Props> {\n static defaultProps = {\n shadowEnabled: false,\n gestureEnabled: true,\n gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,\n overlay: ({\n style,\n }: {\n style: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n }) =>\n style ? (\n <Animated.View pointerEvents=\"none\" style={[styles.overlay, style]} />\n ) : null,\n };\n\n componentDidMount() {\n this.animate({ closing: this.props.closing });\n this.isCurrentlyMounted = true;\n }\n\n componentDidUpdate(prevProps: Props) {\n const { layout, gestureDirection, closing } = this.props;\n const { width, height } = layout;\n\n if (width !== prevProps.layout.width) {\n this.layout.width.setValue(width);\n }\n\n if (height !== prevProps.layout.height) {\n this.layout.height.setValue(height);\n }\n\n if (gestureDirection !== prevProps.gestureDirection) {\n this.inverted.setValue(getInvertedMultiplier(gestureDirection));\n }\n\n const toValue = this.getAnimateToValue(this.props);\n\n if (\n this.getAnimateToValue(prevProps) !== toValue ||\n this.lastToValue !== toValue\n ) {\n // We need to trigger the animation when route was closed\n // Thr route might have been closed by a `POP` action or by a gesture\n // When route was closed due to a gesture, the animation would've happened already\n // It's still important to trigger the animation so that `onClose` is called\n // If `onClose` is not called, cleanup step won't be performed for gestures\n this.animate({ closing });\n }\n }\n\n componentWillUnmount() {\n this.props.gesture.stopAnimation();\n this.isCurrentlyMounted = false;\n this.handleEndInteraction();\n }\n\n private isCurrentlyMounted = false;\n\n private isClosing = new Animated.Value(FALSE);\n\n private inverted = new Animated.Value(\n getInvertedMultiplier(this.props.gestureDirection)\n );\n\n private layout = {\n width: new Animated.Value(this.props.layout.width),\n height: new Animated.Value(this.props.layout.height),\n };\n\n private isSwiping = new Animated.Value(FALSE);\n\n private interactionHandle: number | undefined;\n\n private pendingGestureCallback: number | undefined;\n\n private lastToValue: number | undefined;\n\n private animate = ({\n closing,\n velocity,\n }: {\n closing: boolean;\n velocity?: number;\n }) => {\n const { gesture, transitionSpec, onOpen, onClose, onTransition } =\n this.props;\n\n const toValue = this.getAnimateToValue({\n ...this.props,\n closing,\n });\n\n this.lastToValue = toValue;\n\n this.isClosing.setValue(closing ? TRUE : FALSE);\n\n const spec = closing ? transitionSpec.close : transitionSpec.open;\n\n const animation =\n spec.animation === 'spring' ? Animated.spring : Animated.timing;\n\n this.setPointerEventsEnabled(!closing);\n this.handleStartInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n onTransition?.({ closing, gesture: velocity !== undefined });\n animation(gesture, {\n ...spec.config,\n velocity,\n toValue,\n useNativeDriver,\n isInteraction: false,\n }).start(({ finished }) => {\n this.handleEndInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n if (finished) {\n if (closing) {\n onClose();\n } else {\n onOpen();\n }\n\n if (this.isCurrentlyMounted) {\n // Make sure to re-open screen if it wasn't removed\n this.forceUpdate();\n }\n }\n });\n };\n\n private getAnimateToValue = ({\n closing,\n layout,\n gestureDirection,\n }: {\n closing?: boolean;\n layout: Layout;\n gestureDirection: GestureDirection;\n }) => {\n if (!closing) {\n return 0;\n }\n\n return getDistanceForDirection(layout, gestureDirection);\n };\n\n private setPointerEventsEnabled = (enabled: boolean) => {\n const pointerEvents = enabled ? 'box-none' : 'none';\n\n this.ref.current?.setPointerEvents(pointerEvents);\n };\n\n private handleStartInteraction = () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n };\n\n private handleEndInteraction = () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n };\n\n private handleGestureStateChange = ({\n nativeEvent,\n }: PanGestureHandlerGestureEvent) => {\n const {\n layout,\n onClose,\n onGestureBegin,\n onGestureCanceled,\n onGestureEnd,\n gestureDirection,\n gestureVelocityImpact,\n } = this.props;\n\n switch (nativeEvent.state) {\n case GestureState.ACTIVE:\n this.isSwiping.setValue(TRUE);\n this.handleStartInteraction();\n onGestureBegin?.();\n break;\n case GestureState.CANCELLED: {\n this.isSwiping.setValue(FALSE);\n this.handleEndInteraction();\n\n const velocity =\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? nativeEvent.velocityY\n : nativeEvent.velocityX;\n\n this.animate({ closing: this.props.closing, velocity });\n\n onGestureCanceled?.();\n break;\n }\n case GestureState.END: {\n this.isSwiping.setValue(FALSE);\n\n let distance;\n let translation;\n let velocity;\n\n if (\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ) {\n distance = layout.height;\n translation = nativeEvent.translationY;\n velocity = nativeEvent.velocityY;\n } else {\n distance = layout.width;\n translation = nativeEvent.translationX;\n velocity = nativeEvent.velocityX;\n }\n\n const closing =\n (translation + velocity * gestureVelocityImpact) *\n getInvertedMultiplier(gestureDirection) >\n distance / 2\n ? velocity !== 0 || translation !== 0\n : this.props.closing;\n\n this.animate({ closing, velocity });\n\n if (closing) {\n // We call onClose with a delay to make sure that the animation has already started\n // This will make sure that the state update caused by this doesn't affect start of animation\n this.pendingGestureCallback = setTimeout(() => {\n onClose();\n\n // Trigger an update after we dispatch the action to remove the screen\n // This will make sure that we check if the screen didn't get removed so we can cancel the animation\n this.forceUpdate();\n }, 32) as any as number;\n }\n\n onGestureEnd?.();\n break;\n }\n }\n };\n\n // Memoize this to avoid extra work on re-render\n private getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackCardStyleInterpolator,\n animation: StackCardInterpolationProps\n ) => styleInterpolator(animation)\n );\n\n // Keep track of the animation context when deps changes.\n private getCardAnimation = memoize(\n (\n interpolationIndex: number,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n layout: Layout,\n insetTop: number,\n insetRight: number,\n insetBottom: number,\n insetLeft: number\n ) => ({\n index: interpolationIndex,\n current: { progress: current },\n next: next && { progress: next },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout,\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft,\n },\n })\n );\n\n private gestureActivationCriteria() {\n const { layout, gestureDirection, gestureResponseDistance } = this.props;\n const enableTrackpadTwoFingerGesture = true;\n\n const distance =\n gestureResponseDistance !== undefined\n ? gestureResponseDistance\n : gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? GESTURE_RESPONSE_DISTANCE_VERTICAL\n : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;\n\n if (gestureDirection === 'vertical') {\n return {\n maxDeltaX: 15,\n minOffsetY: 5,\n hitSlop: { bottom: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else if (gestureDirection === 'vertical-inverted') {\n return {\n maxDeltaX: 15,\n minOffsetY: -5,\n hitSlop: { top: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n const hitSlop = -layout.width + distance;\n const invertedMultiplier = getInvertedMultiplier(gestureDirection);\n\n if (invertedMultiplier === 1) {\n return {\n minOffsetX: 5,\n maxDeltaY: 20,\n hitSlop: { right: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n return {\n minOffsetX: -5,\n maxDeltaY: 20,\n hitSlop: { left: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n }\n }\n }\n\n private ref = React.createRef<CardSheetRef>();\n\n render() {\n const {\n styleInterpolator,\n interpolationIndex,\n current,\n gesture,\n next,\n layout,\n insets,\n overlay,\n overlayEnabled,\n shadowEnabled,\n gestureEnabled,\n gestureDirection,\n pageOverflowEnabled,\n headerDarkContent,\n children,\n containerStyle: customContainerStyle,\n contentStyle,\n ...rest\n } = this.props;\n\n const interpolationProps = this.getCardAnimation(\n interpolationIndex,\n current,\n next,\n layout,\n insets.top,\n insets.right,\n insets.bottom,\n insets.left\n );\n\n const interpolatedStyle = this.getInterpolatedStyle(\n styleInterpolator,\n interpolationProps\n );\n\n const { containerStyle, cardStyle, overlayStyle, shadowStyle } =\n interpolatedStyle;\n\n const handleGestureEvent = gestureEnabled\n ? Animated.event(\n [\n {\n nativeEvent:\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? { translationY: gesture }\n : { translationX: gesture },\n },\n ],\n { useNativeDriver }\n )\n : undefined;\n\n const { backgroundColor } = StyleSheet.flatten(contentStyle || {});\n const isTransparent =\n typeof backgroundColor === 'string'\n ? Color(backgroundColor).alpha() === 0\n : false;\n\n return (\n <CardAnimationContext.Provider value={interpolationProps}>\n {\n // StatusBar messes with translucent status bar on Android\n // So we should only enable it on iOS\n Platform.OS === 'ios' &&\n overlayEnabled &&\n next &&\n getIsModalPresentation(styleInterpolator) ? (\n <ModalStatusBarManager\n dark={headerDarkContent}\n layout={layout}\n insets={insets}\n style={cardStyle}\n />\n ) : null\n }\n <Animated.View\n style={{\n // This is a dummy style that doesn't actually change anything visually.\n // Animated needs the animated value to be used somewhere, otherwise things don't update properly.\n // If we disable animations and hide header, it could end up making the value unused.\n // So we have this dummy style that will always be used regardless of what else changed.\n opacity: current,\n }}\n // Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply\n collapsable={false}\n />\n <View pointerEvents=\"box-none\" {...rest}>\n {overlayEnabled ? (\n <View pointerEvents=\"box-none\" style={StyleSheet.absoluteFill}>\n {overlay({ style: overlayStyle })}\n </View>\n ) : null}\n <Animated.View\n style={[styles.container, containerStyle, customContainerStyle]}\n pointerEvents=\"box-none\"\n >\n <PanGestureHandler\n enabled={layout.width !== 0 && gestureEnabled}\n onGestureEvent={handleGestureEvent}\n onHandlerStateChange={this.handleGestureStateChange}\n {...this.gestureActivationCriteria()}\n >\n <Animated.View\n needsOffscreenAlphaCompositing={hasOpacityStyle(cardStyle)}\n style={[styles.container, cardStyle]}\n >\n {shadowEnabled && shadowStyle && !isTransparent ? (\n <Animated.View\n style={[\n styles.shadow,\n gestureDirection === 'horizontal'\n ? [styles.shadowHorizontal, styles.shadowLeft]\n : gestureDirection === 'horizontal-inverted'\n ? [styles.shadowHorizontal, styles.shadowRight]\n : gestureDirection === 'vertical'\n ? [styles.shadowVertical, styles.shadowTop]\n : [styles.shadowVertical, styles.shadowBottom],\n { backgroundColor },\n shadowStyle,\n ]}\n pointerEvents=\"none\"\n />\n ) : null}\n <CardSheet\n ref={this.ref}\n enabled={pageOverflowEnabled}\n layout={layout}\n style={contentStyle}\n >\n {children}\n </CardSheet>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </View>\n </CardAnimationContext.Provider>\n );\n }\n}\n\nexport const getIsModalPresentation = (\n cardStyleInterpolator: StackCardStyleInterpolator\n) => {\n return (\n cardStyleInterpolator === forModalPresentationIOS ||\n // Handle custom modal presentation interpolators as well\n cardStyleInterpolator.name === 'forModalPresentationIOS'\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n overlay: {\n flex: 1,\n backgroundColor: '#000',\n },\n shadow: {\n position: 'absolute',\n shadowRadius: 5,\n shadowColor: '#000',\n shadowOpacity: 0.3,\n },\n shadowHorizontal: {\n top: 0,\n bottom: 0,\n width: 3,\n shadowOffset: { width: -1, height: 1 },\n },\n shadowLeft: {\n left: 0,\n },\n shadowRight: {\n right: 0,\n },\n shadowVertical: {\n left: 0,\n right: 0,\n height: 3,\n shadowOffset: { width: 1, height: -1 },\n },\n shadowTop: {\n top: 0,\n },\n shadowBottom: {\n bottom: 0,\n },\n});\n"]}
|
|
1
|
+
{"version":3,"names":["GESTURE_VELOCITY_IMPACT","TRUE","FALSE","GESTURE_RESPONSE_DISTANCE_HORIZONTAL","GESTURE_RESPONSE_DISTANCE_VERTICAL","useNativeDriver","Platform","OS","hasOpacityStyle","style","flattenedStyle","StyleSheet","flatten","opacity","Card","React","Component","Animated","Value","getInvertedMultiplier","props","gestureDirection","width","layout","height","closing","velocity","gesture","transitionSpec","onOpen","onClose","onTransition","toValue","getAnimateToValue","lastToValue","isClosing","setValue","spec","close","open","animation","spring","timing","setPointerEventsEnabled","handleStartInteraction","clearTimeout","pendingGestureCallback","undefined","config","isInteraction","start","finished","handleEndInteraction","isCurrentlyMounted","forceUpdate","getDistanceForDirection","enabled","pointerEvents","ref","current","setPointerEvents","interactionHandle","InteractionManager","createInteractionHandle","clearInteractionHandle","nativeEvent","onGestureBegin","onGestureCanceled","onGestureEnd","gestureVelocityImpact","state","GestureState","ACTIVE","isSwiping","CANCELLED","velocityY","velocityX","animate","END","distance","translation","translationY","translationX","setTimeout","memoize","styleInterpolator","interpolationIndex","next","insetTop","insetRight","insetBottom","insetLeft","index","progress","swiping","inverted","layouts","screen","insets","top","right","bottom","left","createRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","stopAnimation","gestureActivationCriteria","gestureResponseDistance","enableTrackpadTwoFingerGesture","maxDeltaX","minOffsetY","hitSlop","invertedMultiplier","minOffsetX","maxDeltaY","render","overlay","overlayEnabled","shadowEnabled","gestureEnabled","pageOverflowEnabled","headerDarkContent","children","containerStyle","customContainerStyle","contentStyle","rest","interpolationProps","getCardAnimation","interpolatedStyle","getInterpolatedStyle","cardStyle","overlayStyle","shadowStyle","handleGestureEvent","event","backgroundColor","isTransparent","Color","alpha","getIsModalPresentation","absoluteFill","styles","container","handleGestureStateChange","shadow","shadowHorizontal","shadowLeft","shadowRight","shadowVertical","shadowTop","shadowBottom","cardStyleInterpolator","forModalPresentationIOS","name","create","flex","position","shadowRadius","shadowColor","shadowOpacity","shadowOffset"],"sources":["Card.tsx"],"sourcesContent":["import Color from 'color';\nimport * as React from 'react';\nimport {\n Animated,\n InteractionManager,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';\nimport type {\n GestureDirection,\n Layout,\n StackCardInterpolationProps,\n StackCardStyleInterpolator,\n TransitionSpec,\n} from '../../types';\nimport CardAnimationContext from '../../utils/CardAnimationContext';\nimport getDistanceForDirection from '../../utils/getDistanceForDirection';\nimport getInvertedMultiplier from '../../utils/getInvertedMultiplier';\nimport memoize from '../../utils/memoize';\nimport {\n GestureState,\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n} from '../GestureHandler';\nimport ModalStatusBarManager from '../ModalStatusBarManager';\nimport CardSheet, { CardSheetRef } from './CardSheet';\n\ntype Props = ViewProps & {\n interpolationIndex: number;\n closing: boolean;\n next?: Animated.AnimatedInterpolation;\n current: Animated.AnimatedInterpolation;\n gesture: Animated.Value;\n layout: Layout;\n insets: EdgeInsets;\n headerDarkContent: boolean | undefined;\n pageOverflowEnabled: boolean;\n gestureDirection: GestureDirection;\n onOpen: () => void;\n onClose: () => void;\n onTransition: (props: { closing: boolean; gesture: boolean }) => void;\n onGestureBegin: () => void;\n onGestureCanceled: () => void;\n onGestureEnd: () => void;\n children: React.ReactNode;\n overlay: (props: {\n style: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n }) => React.ReactNode;\n overlayEnabled: boolean;\n shadowEnabled: boolean;\n gestureEnabled: boolean;\n gestureResponseDistance?: number;\n gestureVelocityImpact: number;\n transitionSpec: {\n open: TransitionSpec;\n close: TransitionSpec;\n };\n styleInterpolator: StackCardStyleInterpolator;\n containerStyle?: StyleProp<ViewStyle>;\n contentStyle?: StyleProp<ViewStyle>;\n};\n\nconst GESTURE_VELOCITY_IMPACT = 0.3;\n\nconst TRUE = 1;\nconst FALSE = 0;\n\n/**\n * The distance of touch start from the edge of the screen where the gesture will be recognized\n */\nconst GESTURE_RESPONSE_DISTANCE_HORIZONTAL = 50;\nconst GESTURE_RESPONSE_DISTANCE_VERTICAL = 135;\n\nconst useNativeDriver = Platform.OS !== 'web';\n\nconst hasOpacityStyle = (style: any) => {\n if (style) {\n const flattenedStyle = StyleSheet.flatten(style);\n return flattenedStyle.opacity != null;\n }\n\n return false;\n};\n\nexport default class Card extends React.Component<Props> {\n static defaultProps = {\n shadowEnabled: false,\n gestureEnabled: true,\n gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,\n overlay: ({\n style,\n }: {\n style: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n }) =>\n style ? (\n <Animated.View pointerEvents=\"none\" style={[styles.overlay, style]} />\n ) : null,\n };\n\n componentDidMount() {\n this.animate({ closing: this.props.closing });\n this.isCurrentlyMounted = true;\n }\n\n componentDidUpdate(prevProps: Props) {\n const { layout, gestureDirection, closing } = this.props;\n const { width, height } = layout;\n\n if (width !== prevProps.layout.width) {\n this.layout.width.setValue(width);\n }\n\n if (height !== prevProps.layout.height) {\n this.layout.height.setValue(height);\n }\n\n if (gestureDirection !== prevProps.gestureDirection) {\n this.inverted.setValue(getInvertedMultiplier(gestureDirection));\n }\n\n const toValue = this.getAnimateToValue(this.props);\n\n if (\n this.getAnimateToValue(prevProps) !== toValue ||\n this.lastToValue !== toValue\n ) {\n // We need to trigger the animation when route was closed\n // Thr route might have been closed by a `POP` action or by a gesture\n // When route was closed due to a gesture, the animation would've happened already\n // It's still important to trigger the animation so that `onClose` is called\n // If `onClose` is not called, cleanup step won't be performed for gestures\n this.animate({ closing });\n }\n }\n\n componentWillUnmount() {\n this.props.gesture.stopAnimation();\n this.isCurrentlyMounted = false;\n this.handleEndInteraction();\n }\n\n private isCurrentlyMounted = false;\n\n private isClosing = new Animated.Value(FALSE);\n\n private inverted = new Animated.Value(\n getInvertedMultiplier(this.props.gestureDirection)\n );\n\n private layout = {\n width: new Animated.Value(this.props.layout.width),\n height: new Animated.Value(this.props.layout.height),\n };\n\n private isSwiping = new Animated.Value(FALSE);\n\n private interactionHandle: number | undefined;\n\n private pendingGestureCallback: number | undefined;\n\n private lastToValue: number | undefined;\n\n private animate = ({\n closing,\n velocity,\n }: {\n closing: boolean;\n velocity?: number;\n }) => {\n const { gesture, transitionSpec, onOpen, onClose, onTransition } =\n this.props;\n\n const toValue = this.getAnimateToValue({\n ...this.props,\n closing,\n });\n\n this.lastToValue = toValue;\n\n this.isClosing.setValue(closing ? TRUE : FALSE);\n\n const spec = closing ? transitionSpec.close : transitionSpec.open;\n\n const animation =\n spec.animation === 'spring' ? Animated.spring : Animated.timing;\n\n this.setPointerEventsEnabled(!closing);\n this.handleStartInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n onTransition?.({ closing, gesture: velocity !== undefined });\n animation(gesture, {\n ...spec.config,\n velocity,\n toValue,\n useNativeDriver,\n isInteraction: false,\n }).start(({ finished }) => {\n this.handleEndInteraction();\n\n clearTimeout(this.pendingGestureCallback);\n\n if (finished) {\n if (closing) {\n onClose();\n } else {\n onOpen();\n }\n\n if (this.isCurrentlyMounted) {\n // Make sure to re-open screen if it wasn't removed\n this.forceUpdate();\n }\n }\n });\n };\n\n private getAnimateToValue = ({\n closing,\n layout,\n gestureDirection,\n }: {\n closing?: boolean;\n layout: Layout;\n gestureDirection: GestureDirection;\n }) => {\n if (!closing) {\n return 0;\n }\n\n return getDistanceForDirection(layout, gestureDirection);\n };\n\n private setPointerEventsEnabled = (enabled: boolean) => {\n const pointerEvents = enabled ? 'box-none' : 'none';\n\n this.ref.current?.setPointerEvents(pointerEvents);\n };\n\n private handleStartInteraction = () => {\n if (this.interactionHandle === undefined) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n };\n\n private handleEndInteraction = () => {\n if (this.interactionHandle !== undefined) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = undefined;\n }\n };\n\n private handleGestureStateChange = ({\n nativeEvent,\n }: PanGestureHandlerGestureEvent) => {\n const {\n layout,\n onClose,\n onGestureBegin,\n onGestureCanceled,\n onGestureEnd,\n gestureDirection,\n gestureVelocityImpact,\n } = this.props;\n\n switch (nativeEvent.state) {\n case GestureState.ACTIVE:\n this.isSwiping.setValue(TRUE);\n this.handleStartInteraction();\n onGestureBegin?.();\n break;\n case GestureState.CANCELLED: {\n this.isSwiping.setValue(FALSE);\n this.handleEndInteraction();\n\n const velocity =\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? nativeEvent.velocityY\n : nativeEvent.velocityX;\n\n this.animate({ closing: this.props.closing, velocity });\n\n onGestureCanceled?.();\n break;\n }\n case GestureState.END: {\n this.isSwiping.setValue(FALSE);\n\n let distance;\n let translation;\n let velocity;\n\n if (\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ) {\n distance = layout.height;\n translation = nativeEvent.translationY;\n velocity = nativeEvent.velocityY;\n } else {\n distance = layout.width;\n translation = nativeEvent.translationX;\n velocity = nativeEvent.velocityX;\n }\n\n const closing =\n (translation + velocity * gestureVelocityImpact) *\n getInvertedMultiplier(gestureDirection) >\n distance / 2\n ? velocity !== 0 || translation !== 0\n : this.props.closing;\n\n this.animate({ closing, velocity });\n\n if (closing) {\n // We call onClose with a delay to make sure that the animation has already started\n // This will make sure that the state update caused by this doesn't affect start of animation\n this.pendingGestureCallback = setTimeout(() => {\n onClose();\n\n // Trigger an update after we dispatch the action to remove the screen\n // This will make sure that we check if the screen didn't get removed so we can cancel the animation\n this.forceUpdate();\n }, 32) as any as number;\n }\n\n onGestureEnd?.();\n break;\n }\n }\n };\n\n // Memoize this to avoid extra work on re-render\n private getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackCardStyleInterpolator,\n animation: StackCardInterpolationProps\n ) => styleInterpolator(animation)\n );\n\n // Keep track of the animation context when deps changes.\n private getCardAnimation = memoize(\n (\n interpolationIndex: number,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n layout: Layout,\n insetTop: number,\n insetRight: number,\n insetBottom: number,\n insetLeft: number\n ) => ({\n index: interpolationIndex,\n current: { progress: current },\n next: next && { progress: next },\n closing: this.isClosing,\n swiping: this.isSwiping,\n inverted: this.inverted,\n layouts: {\n screen: layout,\n },\n insets: {\n top: insetTop,\n right: insetRight,\n bottom: insetBottom,\n left: insetLeft,\n },\n })\n );\n\n private gestureActivationCriteria() {\n const { layout, gestureDirection, gestureResponseDistance } = this.props;\n const enableTrackpadTwoFingerGesture = true;\n\n const distance =\n gestureResponseDistance !== undefined\n ? gestureResponseDistance\n : gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? GESTURE_RESPONSE_DISTANCE_VERTICAL\n : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;\n\n if (gestureDirection === 'vertical') {\n return {\n maxDeltaX: 15,\n minOffsetY: 5,\n hitSlop: { bottom: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else if (gestureDirection === 'vertical-inverted') {\n return {\n maxDeltaX: 15,\n minOffsetY: -5,\n hitSlop: { top: -layout.height + distance },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n const hitSlop = -layout.width + distance;\n const invertedMultiplier = getInvertedMultiplier(gestureDirection);\n\n if (invertedMultiplier === 1) {\n return {\n minOffsetX: 5,\n maxDeltaY: 20,\n hitSlop: { right: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n } else {\n return {\n minOffsetX: -5,\n maxDeltaY: 20,\n hitSlop: { left: hitSlop },\n enableTrackpadTwoFingerGesture,\n };\n }\n }\n }\n\n private ref = React.createRef<CardSheetRef>();\n\n render() {\n const {\n styleInterpolator,\n interpolationIndex,\n current,\n gesture,\n next,\n layout,\n insets,\n overlay,\n overlayEnabled,\n shadowEnabled,\n gestureEnabled,\n gestureDirection,\n pageOverflowEnabled,\n headerDarkContent,\n children,\n containerStyle: customContainerStyle,\n contentStyle,\n ...rest\n } = this.props;\n\n const interpolationProps = this.getCardAnimation(\n interpolationIndex,\n current,\n next,\n layout,\n insets.top,\n insets.right,\n insets.bottom,\n insets.left\n );\n\n const interpolatedStyle = this.getInterpolatedStyle(\n styleInterpolator,\n interpolationProps\n );\n\n const { containerStyle, cardStyle, overlayStyle, shadowStyle } =\n interpolatedStyle;\n\n const handleGestureEvent = gestureEnabled\n ? Animated.event(\n [\n {\n nativeEvent:\n gestureDirection === 'vertical' ||\n gestureDirection === 'vertical-inverted'\n ? { translationY: gesture }\n : { translationX: gesture },\n },\n ],\n { useNativeDriver }\n )\n : undefined;\n\n const { backgroundColor } = StyleSheet.flatten(contentStyle || {});\n const isTransparent =\n typeof backgroundColor === 'string'\n ? Color(backgroundColor).alpha() === 0\n : false;\n\n return (\n <CardAnimationContext.Provider value={interpolationProps}>\n {\n // StatusBar messes with translucent status bar on Android\n // So we should only enable it on iOS\n Platform.OS === 'ios' &&\n overlayEnabled &&\n next &&\n getIsModalPresentation(styleInterpolator) ? (\n <ModalStatusBarManager\n dark={headerDarkContent}\n layout={layout}\n insets={insets}\n style={cardStyle}\n />\n ) : null\n }\n <Animated.View\n style={{\n // This is a dummy style that doesn't actually change anything visually.\n // Animated needs the animated value to be used somewhere, otherwise things don't update properly.\n // If we disable animations and hide header, it could end up making the value unused.\n // So we have this dummy style that will always be used regardless of what else changed.\n opacity: current,\n }}\n // Make sure that this view isn't removed. If this view is removed, our style with animated value won't apply\n collapsable={false}\n />\n <View pointerEvents=\"box-none\" {...rest}>\n {overlayEnabled ? (\n <View pointerEvents=\"box-none\" style={StyleSheet.absoluteFill}>\n {overlay({ style: overlayStyle })}\n </View>\n ) : null}\n <Animated.View\n style={[styles.container, containerStyle, customContainerStyle]}\n pointerEvents=\"box-none\"\n >\n <PanGestureHandler\n enabled={layout.width !== 0 && gestureEnabled}\n onGestureEvent={handleGestureEvent}\n onHandlerStateChange={this.handleGestureStateChange}\n {...this.gestureActivationCriteria()}\n >\n <Animated.View\n needsOffscreenAlphaCompositing={hasOpacityStyle(cardStyle)}\n style={[styles.container, cardStyle]}\n >\n {shadowEnabled && shadowStyle && !isTransparent ? (\n <Animated.View\n style={[\n styles.shadow,\n gestureDirection === 'horizontal'\n ? [styles.shadowHorizontal, styles.shadowLeft]\n : gestureDirection === 'horizontal-inverted'\n ? [styles.shadowHorizontal, styles.shadowRight]\n : gestureDirection === 'vertical'\n ? [styles.shadowVertical, styles.shadowTop]\n : [styles.shadowVertical, styles.shadowBottom],\n { backgroundColor },\n shadowStyle,\n ]}\n pointerEvents=\"none\"\n />\n ) : null}\n <CardSheet\n ref={this.ref}\n enabled={pageOverflowEnabled}\n layout={layout}\n style={contentStyle}\n >\n {children}\n </CardSheet>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </View>\n </CardAnimationContext.Provider>\n );\n }\n}\n\nexport const getIsModalPresentation = (\n cardStyleInterpolator: StackCardStyleInterpolator\n) => {\n return (\n cardStyleInterpolator === forModalPresentationIOS ||\n // Handle custom modal presentation interpolators as well\n cardStyleInterpolator.name === 'forModalPresentationIOS'\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n overlay: {\n flex: 1,\n backgroundColor: '#000',\n },\n shadow: {\n position: 'absolute',\n shadowRadius: 5,\n shadowColor: '#000',\n shadowOpacity: 0.3,\n },\n shadowHorizontal: {\n top: 0,\n bottom: 0,\n width: 3,\n shadowOffset: { width: -1, height: 1 },\n },\n shadowLeft: {\n left: 0,\n },\n shadowRight: {\n right: 0,\n },\n shadowVertical: {\n left: 0,\n right: 0,\n height: 3,\n shadowOffset: { width: 1, height: -1 },\n },\n shadowTop: {\n top: 0,\n },\n shadowBottom: {\n bottom: 0,\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CardContainer.tsx"],"names":["EPSILON","CardContainer","interpolationIndex","index","active","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","headerDarkContent","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","layout","onCloseRoute","onOpenRoute","onGestureCancel","onGestureEnd","onGestureStart","onTransitionEnd","onTransitionStart","renderHeader","renderScene","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","scene","parentHeaderHeight","React","useContext","HeaderHeightContext","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","useCallback","options","navigation","descriptor","isFocused","keyboardHandlingEnabled","handleOpen","route","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","insets","top","right","bottom","left","colors","pointerEvents","setPointerEvents","useState","useEffect","listener","progress","next","addListener","value","removeListener","presentation","animationEnabled","cardOverlay","cardOverlayEnabled","cardShadowEnabled","cardStyle","cardStyleInterpolator","gestureDirection","gestureEnabled","gestureResponseDistance","gestureVelocityImpact","headerMode","headerShown","transitionSpec","previousScene","backTitle","name","headerBack","useMemo","undefined","title","current","marginTop","backgroundColor","background","overflow","display","StyleSheet","absoluteFill","styles","container","mode","scenes","onContentHeightChange","memo","create","flex","flexDirection"],"mappings":"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","sourcesContent":["import {\n getHeaderTitle,\n HeaderBackContext,\n HeaderHeightContext,\n HeaderShownContext,\n} from '@react-navigation/elements';\nimport { Route, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport type { Layout, Scene } from '../../types';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport useKeyboardManager from '../../utils/useKeyboardManager';\nimport type { Props as HeaderContainerProps } from '../Header/HeaderContainer';\nimport Card from './Card';\n\ntype Props = {\n interpolationIndex: number;\n index: number;\n active: boolean;\n focused: boolean;\n closing: boolean;\n modal: boolean;\n layout: Layout;\n gesture: Animated.Value;\n scene: Scene;\n headerDarkContent: boolean | undefined;\n safeAreaInsetTop: number;\n safeAreaInsetRight: number;\n safeAreaInsetBottom: number;\n safeAreaInsetLeft: number;\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n renderHeader: (props: HeaderContainerProps) => React.ReactNode;\n renderScene: (props: { route: Route<string> }) => React.ReactNode;\n onOpenRoute: (props: { route: Route<string> }) => void;\n onCloseRoute: (props: { route: Route<string> }) => void;\n onTransitionStart: (\n props: { route: Route<string> },\n closing: boolean\n ) => void;\n onTransitionEnd: (props: { route: Route<string> }, closing: boolean) => void;\n onGestureStart: (props: { route: Route<string> }) => void;\n onGestureEnd: (props: { route: Route<string> }) => void;\n onGestureCancel: (props: { route: Route<string> }) => void;\n hasAbsoluteFloatHeader: boolean;\n headerHeight: number;\n onHeaderHeightChange: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n isParentHeaderShown: boolean;\n isNextScreenTransparent: boolean;\n detachCurrentScreen: boolean;\n};\n\nconst EPSILON = 0.1;\n\nfunction CardContainer({\n interpolationIndex,\n index,\n active,\n closing,\n gesture,\n focused,\n modal,\n getPreviousScene,\n getFocusedRoute,\n headerDarkContent,\n hasAbsoluteFloatHeader,\n headerHeight,\n onHeaderHeightChange,\n isParentHeaderShown,\n isNextScreenTransparent,\n detachCurrentScreen,\n layout,\n onCloseRoute,\n onOpenRoute,\n onGestureCancel,\n onGestureEnd,\n onGestureStart,\n onTransitionEnd,\n onTransitionStart,\n renderHeader,\n renderScene,\n safeAreaInsetBottom,\n safeAreaInsetLeft,\n safeAreaInsetRight,\n safeAreaInsetTop,\n scene,\n}: Props) {\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n\n const { onPageChangeStart, onPageChangeCancel, onPageChangeConfirm } =\n useKeyboardManager(\n React.useCallback(() => {\n const { options, navigation } = scene.descriptor;\n\n return (\n navigation.isFocused() && options.keyboardHandlingEnabled !== false\n );\n }, [scene.descriptor])\n );\n\n const handleOpen = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, false);\n onOpenRoute({ route });\n };\n\n const handleClose = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, true);\n onCloseRoute({ route });\n };\n\n const handleGestureBegin = () => {\n const { route } = scene.descriptor;\n\n onPageChangeStart();\n onGestureStart({ route });\n };\n\n const handleGestureCanceled = () => {\n const { route } = scene.descriptor;\n\n onPageChangeCancel();\n onGestureCancel({ route });\n };\n\n const handleGestureEnd = () => {\n const { route } = scene.descriptor;\n\n onGestureEnd({ route });\n };\n\n const handleTransition = ({\n closing,\n gesture,\n }: {\n closing: boolean;\n gesture: boolean;\n }) => {\n const { route } = scene.descriptor;\n\n if (!gesture) {\n onPageChangeConfirm?.(true);\n } else if (active && closing) {\n onPageChangeConfirm?.(false);\n } else {\n onPageChangeCancel?.();\n }\n\n onTransitionStart?.({ route }, closing);\n };\n\n const insets = {\n top: safeAreaInsetTop,\n right: safeAreaInsetRight,\n bottom: safeAreaInsetBottom,\n left: safeAreaInsetLeft,\n };\n\n const { colors } = useTheme();\n\n const [pointerEvents, setPointerEvents] = React.useState<'box-none' | 'none'>(\n 'box-none'\n );\n\n React.useEffect(() => {\n const listener = scene.progress.next?.addListener?.(\n ({ value }: { value: number }) => {\n setPointerEvents(value <= EPSILON ? 'box-none' : 'none');\n }\n );\n\n return () => {\n if (listener) {\n scene.progress.next?.removeListener?.(listener);\n }\n };\n }, [pointerEvents, scene.progress.next]);\n\n const {\n presentation,\n animationEnabled,\n cardOverlay,\n cardOverlayEnabled,\n cardShadowEnabled,\n cardStyle,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n headerMode,\n headerShown,\n transitionSpec,\n } = scene.descriptor.options;\n\n const previousScene = getPreviousScene({ route: scene.descriptor.route });\n\n let backTitle: string | undefined;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n backTitle = getHeaderTitle(options, route.name);\n }\n\n const headerBack = React.useMemo(\n () => (backTitle !== undefined ? { title: backTitle } : undefined),\n [backTitle]\n );\n\n return (\n <Card\n interpolationIndex={interpolationIndex}\n gestureDirection={gestureDirection}\n layout={layout}\n insets={insets}\n gesture={gesture}\n current={scene.progress.current}\n next={scene.progress.next}\n closing={closing}\n onOpen={handleOpen}\n onClose={handleClose}\n overlay={cardOverlay}\n overlayEnabled={cardOverlayEnabled}\n shadowEnabled={cardShadowEnabled}\n onTransition={handleTransition}\n onGestureBegin={handleGestureBegin}\n onGestureCanceled={handleGestureCanceled}\n onGestureEnd={handleGestureEnd}\n gestureEnabled={index === 0 ? false : gestureEnabled}\n gestureResponseDistance={gestureResponseDistance}\n gestureVelocityImpact={gestureVelocityImpact}\n transitionSpec={transitionSpec}\n styleInterpolator={cardStyleInterpolator}\n accessibilityElementsHidden={!focused}\n importantForAccessibility={focused ? 'auto' : 'no-hide-descendants'}\n pointerEvents={active ? 'box-none' : pointerEvents}\n pageOverflowEnabled={headerMode !== 'float' && presentation !== 'modal'}\n headerDarkContent={headerDarkContent}\n containerStyle={\n hasAbsoluteFloatHeader && headerMode !== 'screen'\n ? { marginTop: headerHeight }\n : null\n }\n contentStyle={[\n {\n backgroundColor:\n presentation === 'transparentModal'\n ? 'transparent'\n : colors.background,\n },\n cardStyle,\n ]}\n style={[\n {\n // This is necessary to avoid unfocused larger pages increasing scroll area\n // The issue can be seen on the web when a smaller screen is pushed over a larger one\n overflow: active ? undefined : 'hidden',\n display:\n // Hide unfocused screens when animation isn't enabled\n // This is also necessary for a11y on web\n animationEnabled === false &&\n isNextScreenTransparent === false &&\n detachCurrentScreen !== false &&\n !focused\n ? 'none'\n : 'flex',\n },\n StyleSheet.absoluteFill,\n ]}\n >\n <View style={styles.container}>\n <ModalPresentationContext.Provider value={modal}>\n <View style={styles.scene}>\n <HeaderBackContext.Provider value={headerBack}>\n <HeaderShownContext.Provider\n value={isParentHeaderShown || headerShown !== false}\n >\n <HeaderHeightContext.Provider\n value={headerShown ? headerHeight : parentHeaderHeight ?? 0}\n >\n {renderScene({ route: scene.descriptor.route })}\n </HeaderHeightContext.Provider>\n </HeaderShownContext.Provider>\n </HeaderBackContext.Provider>\n </View>\n {headerMode !== 'float'\n ? renderHeader({\n mode: 'screen',\n layout,\n scenes: [previousScene, scene],\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange: onHeaderHeightChange,\n })\n : null}\n </ModalPresentationContext.Provider>\n </View>\n </Card>\n );\n}\n\nexport default React.memo(CardContainer);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse',\n },\n scene: {\n flex: 1,\n },\n});\n"]}
|
|
1
|
+
{"version":3,"names":["EPSILON","CardContainer","interpolationIndex","index","active","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","headerDarkContent","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","layout","onCloseRoute","onOpenRoute","onGestureCancel","onGestureEnd","onGestureStart","onTransitionEnd","onTransitionStart","renderHeader","renderScene","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","scene","parentHeaderHeight","React","useContext","HeaderHeightContext","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","useKeyboardManager","useCallback","options","navigation","descriptor","isFocused","keyboardHandlingEnabled","handleOpen","route","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","insets","top","right","bottom","left","colors","useTheme","pointerEvents","setPointerEvents","useState","useEffect","listener","progress","next","addListener","value","removeListener","presentation","animationEnabled","cardOverlay","cardOverlayEnabled","cardShadowEnabled","cardStyle","cardStyleInterpolator","gestureDirection","gestureEnabled","gestureResponseDistance","gestureVelocityImpact","headerMode","headerShown","transitionSpec","previousScene","backTitle","getHeaderTitle","name","headerBack","useMemo","undefined","title","current","marginTop","backgroundColor","background","overflow","display","StyleSheet","absoluteFill","styles","container","mode","scenes","onContentHeightChange","memo","create","flex","flexDirection"],"sources":["CardContainer.tsx"],"sourcesContent":["import {\n getHeaderTitle,\n HeaderBackContext,\n HeaderHeightContext,\n HeaderShownContext,\n} from '@react-navigation/elements';\nimport { Route, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport type { Layout, Scene } from '../../types';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport useKeyboardManager from '../../utils/useKeyboardManager';\nimport type { Props as HeaderContainerProps } from '../Header/HeaderContainer';\nimport Card from './Card';\n\ntype Props = {\n interpolationIndex: number;\n index: number;\n active: boolean;\n focused: boolean;\n closing: boolean;\n modal: boolean;\n layout: Layout;\n gesture: Animated.Value;\n scene: Scene;\n headerDarkContent: boolean | undefined;\n safeAreaInsetTop: number;\n safeAreaInsetRight: number;\n safeAreaInsetBottom: number;\n safeAreaInsetLeft: number;\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n renderHeader: (props: HeaderContainerProps) => React.ReactNode;\n renderScene: (props: { route: Route<string> }) => React.ReactNode;\n onOpenRoute: (props: { route: Route<string> }) => void;\n onCloseRoute: (props: { route: Route<string> }) => void;\n onTransitionStart: (\n props: { route: Route<string> },\n closing: boolean\n ) => void;\n onTransitionEnd: (props: { route: Route<string> }, closing: boolean) => void;\n onGestureStart: (props: { route: Route<string> }) => void;\n onGestureEnd: (props: { route: Route<string> }) => void;\n onGestureCancel: (props: { route: Route<string> }) => void;\n hasAbsoluteFloatHeader: boolean;\n headerHeight: number;\n onHeaderHeightChange: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n isParentHeaderShown: boolean;\n isNextScreenTransparent: boolean;\n detachCurrentScreen: boolean;\n};\n\nconst EPSILON = 0.1;\n\nfunction CardContainer({\n interpolationIndex,\n index,\n active,\n closing,\n gesture,\n focused,\n modal,\n getPreviousScene,\n getFocusedRoute,\n headerDarkContent,\n hasAbsoluteFloatHeader,\n headerHeight,\n onHeaderHeightChange,\n isParentHeaderShown,\n isNextScreenTransparent,\n detachCurrentScreen,\n layout,\n onCloseRoute,\n onOpenRoute,\n onGestureCancel,\n onGestureEnd,\n onGestureStart,\n onTransitionEnd,\n onTransitionStart,\n renderHeader,\n renderScene,\n safeAreaInsetBottom,\n safeAreaInsetLeft,\n safeAreaInsetRight,\n safeAreaInsetTop,\n scene,\n}: Props) {\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n\n const { onPageChangeStart, onPageChangeCancel, onPageChangeConfirm } =\n useKeyboardManager(\n React.useCallback(() => {\n const { options, navigation } = scene.descriptor;\n\n return (\n navigation.isFocused() && options.keyboardHandlingEnabled !== false\n );\n }, [scene.descriptor])\n );\n\n const handleOpen = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, false);\n onOpenRoute({ route });\n };\n\n const handleClose = () => {\n const { route } = scene.descriptor;\n\n onTransitionEnd({ route }, true);\n onCloseRoute({ route });\n };\n\n const handleGestureBegin = () => {\n const { route } = scene.descriptor;\n\n onPageChangeStart();\n onGestureStart({ route });\n };\n\n const handleGestureCanceled = () => {\n const { route } = scene.descriptor;\n\n onPageChangeCancel();\n onGestureCancel({ route });\n };\n\n const handleGestureEnd = () => {\n const { route } = scene.descriptor;\n\n onGestureEnd({ route });\n };\n\n const handleTransition = ({\n closing,\n gesture,\n }: {\n closing: boolean;\n gesture: boolean;\n }) => {\n const { route } = scene.descriptor;\n\n if (!gesture) {\n onPageChangeConfirm?.(true);\n } else if (active && closing) {\n onPageChangeConfirm?.(false);\n } else {\n onPageChangeCancel?.();\n }\n\n onTransitionStart?.({ route }, closing);\n };\n\n const insets = {\n top: safeAreaInsetTop,\n right: safeAreaInsetRight,\n bottom: safeAreaInsetBottom,\n left: safeAreaInsetLeft,\n };\n\n const { colors } = useTheme();\n\n const [pointerEvents, setPointerEvents] = React.useState<'box-none' | 'none'>(\n 'box-none'\n );\n\n React.useEffect(() => {\n const listener = scene.progress.next?.addListener?.(\n ({ value }: { value: number }) => {\n setPointerEvents(value <= EPSILON ? 'box-none' : 'none');\n }\n );\n\n return () => {\n if (listener) {\n scene.progress.next?.removeListener?.(listener);\n }\n };\n }, [pointerEvents, scene.progress.next]);\n\n const {\n presentation,\n animationEnabled,\n cardOverlay,\n cardOverlayEnabled,\n cardShadowEnabled,\n cardStyle,\n cardStyleInterpolator,\n gestureDirection,\n gestureEnabled,\n gestureResponseDistance,\n gestureVelocityImpact,\n headerMode,\n headerShown,\n transitionSpec,\n } = scene.descriptor.options;\n\n const previousScene = getPreviousScene({ route: scene.descriptor.route });\n\n let backTitle: string | undefined;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n backTitle = getHeaderTitle(options, route.name);\n }\n\n const headerBack = React.useMemo(\n () => (backTitle !== undefined ? { title: backTitle } : undefined),\n [backTitle]\n );\n\n return (\n <Card\n interpolationIndex={interpolationIndex}\n gestureDirection={gestureDirection}\n layout={layout}\n insets={insets}\n gesture={gesture}\n current={scene.progress.current}\n next={scene.progress.next}\n closing={closing}\n onOpen={handleOpen}\n onClose={handleClose}\n overlay={cardOverlay}\n overlayEnabled={cardOverlayEnabled}\n shadowEnabled={cardShadowEnabled}\n onTransition={handleTransition}\n onGestureBegin={handleGestureBegin}\n onGestureCanceled={handleGestureCanceled}\n onGestureEnd={handleGestureEnd}\n gestureEnabled={index === 0 ? false : gestureEnabled}\n gestureResponseDistance={gestureResponseDistance}\n gestureVelocityImpact={gestureVelocityImpact}\n transitionSpec={transitionSpec}\n styleInterpolator={cardStyleInterpolator}\n accessibilityElementsHidden={!focused}\n importantForAccessibility={focused ? 'auto' : 'no-hide-descendants'}\n pointerEvents={active ? 'box-none' : pointerEvents}\n pageOverflowEnabled={headerMode !== 'float' && presentation !== 'modal'}\n headerDarkContent={headerDarkContent}\n containerStyle={\n hasAbsoluteFloatHeader && headerMode !== 'screen'\n ? { marginTop: headerHeight }\n : null\n }\n contentStyle={[\n {\n backgroundColor:\n presentation === 'transparentModal'\n ? 'transparent'\n : colors.background,\n },\n cardStyle,\n ]}\n style={[\n {\n // This is necessary to avoid unfocused larger pages increasing scroll area\n // The issue can be seen on the web when a smaller screen is pushed over a larger one\n overflow: active ? undefined : 'hidden',\n display:\n // Hide unfocused screens when animation isn't enabled\n // This is also necessary for a11y on web\n animationEnabled === false &&\n isNextScreenTransparent === false &&\n detachCurrentScreen !== false &&\n !focused\n ? 'none'\n : 'flex',\n },\n StyleSheet.absoluteFill,\n ]}\n >\n <View style={styles.container}>\n <ModalPresentationContext.Provider value={modal}>\n <View style={styles.scene}>\n <HeaderBackContext.Provider value={headerBack}>\n <HeaderShownContext.Provider\n value={isParentHeaderShown || headerShown !== false}\n >\n <HeaderHeightContext.Provider\n value={headerShown ? headerHeight : parentHeaderHeight ?? 0}\n >\n {renderScene({ route: scene.descriptor.route })}\n </HeaderHeightContext.Provider>\n </HeaderShownContext.Provider>\n </HeaderBackContext.Provider>\n </View>\n {headerMode !== 'float'\n ? renderHeader({\n mode: 'screen',\n layout,\n scenes: [previousScene, scene],\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange: onHeaderHeightChange,\n })\n : null}\n </ModalPresentationContext.Provider>\n </View>\n </Card>\n );\n}\n\nexport default React.memo(CardContainer);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse',\n },\n scene: {\n flex: 1,\n },\n});\n"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _extends() { _extends = Object.assign
|
|
16
|
+
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); }
|
|
17
17
|
|
|
18
18
|
// This component will render a page which overflows the screen
|
|
19
19
|
// if the container fills the body by comparing the size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","forwardRef","CardSheet","ref","enabled","layout","style","rest","fill","setFill","useState","pointerEvents","setPointerEvents","useImperativeHandle","useEffect","document","body","width","clientWidth","height","clientHeight","styles","page","card","StyleSheet","create","minHeight","flex","overflow"],"sources":["CardSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n enabled: boolean;\n layout: { width: number; height: number };\n children: React.ReactNode;\n};\n\nexport type CardSheetRef = {\n setPointerEvents: React.Dispatch<ViewProps['pointerEvents']>;\n};\n\n// This component will render a page which overflows the screen\n// if the container fills the body by comparing the size\n// This lets the document.body handle scrolling of the content\n// It's necessary for mobile browsers to be able to hide address bar on scroll\nexport default React.forwardRef<CardSheetRef, Props>(function CardSheet(\n { enabled, layout, style, ...rest },\n ref\n) {\n const [fill, setFill] = React.useState(false);\n // To avoid triggering a rerender in Card during animation we had to move\n // the state to CardSheet. The `setPointerEvents` is then hoisted back to the Card.\n const [pointerEvents, setPointerEvents] =\n React.useState<ViewProps['pointerEvents']>('auto');\n\n React.useImperativeHandle(ref, () => {\n return { setPointerEvents };\n });\n\n React.useEffect(() => {\n if (typeof document === 'undefined' || !document.body) {\n // Only run when DOM is available\n return;\n }\n\n const width = document.body.clientWidth;\n const height = document.body.clientHeight;\n\n setFill(width === layout.width && height === layout.height);\n }, [layout.height, layout.width]);\n\n return (\n <View\n {...rest}\n pointerEvents={pointerEvents}\n style={[enabled && fill ? styles.page : styles.card, style]}\n />\n );\n});\n\nconst styles = StyleSheet.create({\n page: {\n minHeight: '100%',\n },\n card: {\n flex: 1,\n overflow: 'hidden',\n },\n});\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAYA;AACA;AACA;AACA;4BACeA,KAAK,CAACC,UAAN,CAAsC,SAASC,SAAT,OAEnDC,GAFmD,EAGnD;EAAA,IAFA;IAAEC,OAAF;IAAWC,MAAX;IAAmBC,KAAnB;IAA0B,GAAGC;EAA7B,CAEA;EACA,MAAM,CAACC,IAAD,EAAOC,OAAP,IAAkBT,KAAK,CAACU,QAAN,CAAe,KAAf,CAAxB,CADA,CAEA;EACA;;EACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IACJZ,KAAK,CAACU,QAAN,CAA2C,MAA3C,CADF;EAGAV,KAAK,CAACa,mBAAN,CAA0BV,GAA1B,EAA+B,MAAM;IACnC,OAAO;MAAES;IAAF,CAAP;EACD,CAFD;EAIAZ,KAAK,CAACc,SAAN,CAAgB,MAAM;IACpB,IAAI,OAAOC,QAAP,KAAoB,WAApB,IAAmC,CAACA,QAAQ,CAACC,IAAjD,EAAuD;MACrD;MACA;IACD;;IAED,MAAMC,KAAK,GAAGF,QAAQ,CAACC,IAAT,CAAcE,WAA5B;IACA,MAAMC,MAAM,GAAGJ,QAAQ,CAACC,IAAT,CAAcI,YAA7B;IAEAX,OAAO,CAACQ,KAAK,KAAKZ,MAAM,CAACY,KAAjB,IAA0BE,MAAM,KAAKd,MAAM,CAACc,MAA7C,CAAP;EACD,CAVD,EAUG,CAACd,MAAM,CAACc,MAAR,EAAgBd,MAAM,CAACY,KAAvB,CAVH;EAYA,oBACE,oBAAC,iBAAD,eACMV,IADN;IAEE,aAAa,EAAEI,aAFjB;IAGE,KAAK,EAAE,CAACP,OAAO,IAAII,IAAX,GAAkBa,MAAM,CAACC,IAAzB,GAAgCD,MAAM,CAACE,IAAxC,EAA8CjB,KAA9C;EAHT,GADF;AAOD,CAjCc,C;;;;AAmCf,MAAMe,MAAM,GAAGG,uBAAA,CAAWC,MAAX,CAAkB;EAC/BH,IAAI,EAAE;IACJI,SAAS,EAAE;EADP,CADyB;EAI/BH,IAAI,EAAE;IACJI,IAAI,EAAE,CADF;IAEJC,QAAQ,EAAE;EAFN;AAJyB,CAAlB,CAAf"}
|