UNPKG

17.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["CardContainer.tsx"],"names":["getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","useTheme","React","StyleSheet","View","ModalPresentationContext","useKeyboardManager","Card","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","useContext","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","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"]}
\No newline at end of file