@react-navigation/drawer 6.1.7 → 6.3.1

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.
Files changed (82) hide show
  1. package/lib/commonjs/index.js +14 -14
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createDrawerNavigator.js +19 -15
  4. package/lib/commonjs/navigators/createDrawerNavigator.js.map +1 -1
  5. package/lib/commonjs/utils/DrawerStatusContext.js.map +1 -1
  6. package/lib/commonjs/utils/useDrawerStatus.js.map +1 -1
  7. package/lib/commonjs/views/DrawerContent.js +6 -5
  8. package/lib/commonjs/views/DrawerContent.js.map +1 -1
  9. package/lib/commonjs/views/DrawerContentScrollView.js +7 -6
  10. package/lib/commonjs/views/DrawerContentScrollView.js.map +1 -1
  11. package/lib/commonjs/views/DrawerItem.js +15 -10
  12. package/lib/commonjs/views/DrawerItem.js.map +1 -1
  13. package/lib/commonjs/views/DrawerItemList.js +28 -14
  14. package/lib/commonjs/views/DrawerItemList.js.map +1 -1
  15. package/lib/commonjs/views/DrawerToggleButton.js +5 -4
  16. package/lib/commonjs/views/DrawerToggleButton.js.map +1 -1
  17. package/lib/commonjs/views/DrawerView.js +34 -30
  18. package/lib/commonjs/views/DrawerView.js.map +1 -1
  19. package/lib/commonjs/views/GestureHandler.js +7 -4
  20. package/lib/commonjs/views/GestureHandler.js.map +1 -1
  21. package/lib/commonjs/views/GestureHandlerNative.js +1 -1
  22. package/lib/commonjs/views/ScreenFallback.js +13 -9
  23. package/lib/commonjs/views/ScreenFallback.js.map +1 -1
  24. package/lib/commonjs/views/legacy/Drawer.js +20 -13
  25. package/lib/commonjs/views/legacy/Drawer.js.map +1 -1
  26. package/lib/commonjs/views/legacy/Overlay.js +8 -6
  27. package/lib/commonjs/views/legacy/Overlay.js.map +1 -1
  28. package/lib/commonjs/views/modern/Drawer.js +28 -30
  29. package/lib/commonjs/views/modern/Drawer.js.map +1 -1
  30. package/lib/commonjs/views/modern/Overlay.js +18 -9
  31. package/lib/commonjs/views/modern/Overlay.js.map +1 -1
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/module/navigators/createDrawerNavigator.js +19 -15
  34. package/lib/module/navigators/createDrawerNavigator.js.map +1 -1
  35. package/lib/module/utils/DrawerStatusContext.js.map +1 -1
  36. package/lib/module/utils/useDrawerStatus.js.map +1 -1
  37. package/lib/module/views/DrawerContent.js +6 -5
  38. package/lib/module/views/DrawerContent.js.map +1 -1
  39. package/lib/module/views/DrawerContentScrollView.js +7 -6
  40. package/lib/module/views/DrawerContentScrollView.js.map +1 -1
  41. package/lib/module/views/DrawerItem.js +15 -10
  42. package/lib/module/views/DrawerItem.js.map +1 -1
  43. package/lib/module/views/DrawerItemList.js +28 -14
  44. package/lib/module/views/DrawerItemList.js.map +1 -1
  45. package/lib/module/views/DrawerToggleButton.js +5 -4
  46. package/lib/module/views/DrawerToggleButton.js.map +1 -1
  47. package/lib/module/views/DrawerView.js +33 -29
  48. package/lib/module/views/DrawerView.js.map +1 -1
  49. package/lib/module/views/GestureHandler.js +6 -3
  50. package/lib/module/views/GestureHandler.js.map +1 -1
  51. package/lib/module/views/ScreenFallback.js +13 -9
  52. package/lib/module/views/ScreenFallback.js.map +1 -1
  53. package/lib/module/views/legacy/Drawer.js +20 -13
  54. package/lib/module/views/legacy/Drawer.js.map +1 -1
  55. package/lib/module/views/legacy/Overlay.js +8 -6
  56. package/lib/module/views/legacy/Overlay.js.map +1 -1
  57. package/lib/module/views/modern/Drawer.js +28 -30
  58. package/lib/module/views/modern/Drawer.js.map +1 -1
  59. package/lib/module/views/modern/Overlay.js +19 -10
  60. package/lib/module/views/modern/Overlay.js.map +1 -1
  61. package/lib/typescript/src/index.d.ts +1 -1
  62. package/lib/typescript/src/navigators/createDrawerNavigator.d.ts +1 -1
  63. package/lib/typescript/src/types.d.ts +13 -1
  64. package/lib/typescript/src/utils/useDrawerStatus.d.ts +2 -1
  65. package/lib/typescript/src/views/DrawerItem.d.ts +4 -0
  66. package/lib/typescript/src/views/ScreenFallback.d.ts +1 -0
  67. package/lib/typescript/src/views/legacy/Overlay.d.ts +7 -1
  68. package/lib/typescript/src/views/modern/Overlay.d.ts +7 -1
  69. package/package.json +10 -10
  70. package/src/index.tsx +1 -0
  71. package/src/navigators/createDrawerNavigator.tsx +11 -7
  72. package/src/types.tsx +11 -1
  73. package/src/utils/DrawerStatusContext.tsx +3 -2
  74. package/src/utils/useDrawerStatus.tsx +2 -1
  75. package/src/views/DrawerItem.tsx +6 -0
  76. package/src/views/DrawerItemList.tsx +21 -8
  77. package/src/views/DrawerView.tsx +3 -2
  78. package/src/views/ScreenFallback.tsx +1 -0
  79. package/src/views/legacy/Drawer.tsx +21 -9
  80. package/src/views/legacy/Overlay.tsx +1 -0
  81. package/src/views/modern/Drawer.tsx +25 -23
  82. package/src/views/modern/Overlay.tsx +16 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["Drawer.tsx"],"names":["SWIPE_DISTANCE_MINIMUM","DEFAULT_DRAWER_WIDTH","minmax","value","start","end","Math","min","max","Drawer","dimensions","drawerPosition","drawerStyle","drawerType","gestureHandlerProps","hideStatusBarOnOpen","keyboardDismissMode","onClose","onOpen","open","overlayStyle","renderDrawerContent","renderSceneContent","statusBarAnimation","swipeDistanceThreshold","swipeEdgeWidth","swipeEnabled","swipeVelocityThreshold","getDrawerWidth","width","StyleSheet","flatten","endsWith","percentage","Number","replace","isFinite","drawerWidth","isOpen","isRight","getDrawerTranslationX","React","useCallback","hideStatusBar","hide","StatusBar","setHidden","useEffect","interactionHandleRef","useRef","startInteraction","current","InteractionManager","createInteractionHandle","endInteraction","clearInteractionHandle","hideKeyboard","Keyboard","dismiss","onGestureStart","onGestureEnd","hitSlop","right","undefined","left","touchStartX","touchX","translationX","gestureState","GestureState","UNDETERMINED","toggleDrawer","velocity","translateX","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","onGestureEvent","onStart","event","ctx","startX","state","x","onActive","onEnd","nextOpen","abs","velocityX","touchDistance","ACTIVE","drawerAnimatedStyle","transform","contentAnimatedStyle","progress","styles","main","flexDirection","content","Platform","OS","container","position","zIndex","create","top","bottom","maxWidth","flex","select","web","default","overflow"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n InteractionManager,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State as GestureState,\n} from 'react-native-gesture-handler';\nimport Animated, {\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n} from 'react-native-reanimated';\n\nimport type { DrawerProps } from '../../types';\nimport DrawerProgressContext from '../../utils/DrawerProgressContext';\nimport Overlay from './Overlay';\n\nconst SWIPE_DISTANCE_MINIMUM = 5;\nconst DEFAULT_DRAWER_WIDTH = '80%';\n\nconst minmax = (value: number, start: number, end: number) => {\n 'worklet';\n\n return Math.min(Math.max(value, start), end);\n};\n\nexport default function Drawer({\n dimensions,\n drawerPosition,\n drawerStyle,\n drawerType,\n gestureHandlerProps,\n hideStatusBarOnOpen,\n keyboardDismissMode,\n onClose,\n onOpen,\n open,\n overlayStyle,\n renderDrawerContent,\n renderSceneContent,\n statusBarAnimation,\n swipeDistanceThreshold,\n swipeEdgeWidth,\n swipeEnabled,\n swipeVelocityThreshold,\n}: DrawerProps) {\n const getDrawerWidth = (): number => {\n const { width = DEFAULT_DRAWER_WIDTH } =\n StyleSheet.flatten(drawerStyle) || {};\n\n if (typeof width === 'string' && width.endsWith('%')) {\n // Try to calculate width if a percentage is given\n const percentage = Number(width.replace(/%$/, ''));\n\n if (Number.isFinite(percentage)) {\n return dimensions.width * (percentage / 100);\n }\n }\n\n return typeof width === 'number' ? width : 0;\n };\n\n const drawerWidth = getDrawerWidth();\n\n const isOpen = drawerType === 'permanent' ? true : open;\n const isRight = drawerPosition === 'right';\n\n const getDrawerTranslationX = React.useCallback(\n (open: boolean) => {\n 'worklet';\n\n if (drawerPosition === 'left') {\n return open ? 0 : -drawerWidth;\n }\n\n return open ? 0 : drawerWidth;\n },\n [drawerPosition, drawerWidth]\n );\n\n const hideStatusBar = React.useCallback(\n (hide: boolean) => {\n if (hideStatusBarOnOpen) {\n StatusBar.setHidden(hide, statusBarAnimation);\n }\n },\n [hideStatusBarOnOpen, statusBarAnimation]\n );\n\n React.useEffect(() => {\n hideStatusBar(isOpen);\n\n return () => hideStatusBar(false);\n }, [isOpen, hideStatusBarOnOpen, statusBarAnimation, hideStatusBar]);\n\n const interactionHandleRef = React.useRef<number | null>(null);\n\n const startInteraction = () => {\n interactionHandleRef.current = InteractionManager.createInteractionHandle();\n };\n\n const endInteraction = () => {\n if (interactionHandleRef.current != null) {\n InteractionManager.clearInteractionHandle(interactionHandleRef.current);\n interactionHandleRef.current = null;\n }\n };\n\n const hideKeyboard = () => {\n if (keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n };\n\n const onGestureStart = () => {\n startInteraction();\n hideKeyboard();\n hideStatusBar(true);\n };\n\n const onGestureEnd = () => {\n endInteraction();\n };\n\n // FIXME: Currently hitSlop is broken when on Android when drawer is on right\n // https://github.com/software-mansion/react-native-gesture-handler/issues/569\n const hitSlop = isRight\n ? // Extend hitSlop to the side of the screen when drawer is closed\n // This lets the user drag the drawer from the side of the screen\n { right: 0, width: isOpen ? undefined : swipeEdgeWidth }\n : { left: 0, width: isOpen ? undefined : swipeEdgeWidth };\n\n const touchStartX = useSharedValue(0);\n const touchX = useSharedValue(0);\n const translationX = useSharedValue(getDrawerTranslationX(open));\n const gestureState = useSharedValue<GestureState>(GestureState.UNDETERMINED);\n\n const toggleDrawer = React.useCallback(\n (open: boolean, velocity?: number) => {\n 'worklet';\n\n const translateX = getDrawerTranslationX(open);\n\n touchStartX.value = 0;\n touchX.value = 0;\n translationX.value = withSpring(\n translateX,\n {\n velocity,\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n },\n () => {\n if (translationX.value === getDrawerTranslationX(true)) {\n runOnJS(onOpen)();\n } else if (translationX.value === getDrawerTranslationX(false)) {\n runOnJS(onClose)();\n }\n }\n );\n },\n [getDrawerTranslationX, onClose, onOpen, touchStartX, touchX, translationX]\n );\n\n React.useEffect(() => toggleDrawer(open), [open, toggleDrawer]);\n\n const onGestureEvent = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n { startX: number }\n >({\n onStart: (event, ctx) => {\n ctx.startX = translationX.value;\n gestureState.value = event.state;\n touchStartX.value = event.x;\n\n runOnJS(onGestureStart)();\n },\n onActive: (event, ctx) => {\n touchX.value = event.x;\n translationX.value = ctx.startX + event.translationX;\n gestureState.value = event.state;\n },\n onEnd: (event) => {\n gestureState.value = event.state;\n\n const nextOpen =\n (Math.abs(event.translationX) > SWIPE_DISTANCE_MINIMUM &&\n Math.abs(event.translationX) > swipeVelocityThreshold) ||\n Math.abs(event.translationX) > swipeDistanceThreshold\n ? drawerPosition === 'left'\n ? // If swiped to right, open the drawer, otherwise close it\n (event.velocityX === 0 ? event.translationX : event.velocityX) > 0\n : // If swiped to left, open the drawer, otherwise close it\n (event.velocityX === 0 ? event.translationX : event.velocityX) < 0\n : open;\n\n toggleDrawer(nextOpen, event.velocityX);\n runOnJS(onGestureEnd)();\n },\n });\n\n const translateX = useDerivedValue(() => {\n // Comment stolen from react-native-gesture-handler/DrawerLayout\n //\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep start position\n // of the gesture. Then we use that value to calculate how much we need to subtract from\n // the translationX. If the gesture started on the greyed out area we take the distance from the\n // edge of the drawer to the start position. Otherwise we don't subtract at all and the\n // drawer be pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n const touchDistance =\n drawerType === 'front' && gestureState.value === GestureState.ACTIVE\n ? minmax(\n drawerPosition === 'left'\n ? touchStartX.value - drawerWidth\n : dimensions.width - drawerWidth - touchStartX.value,\n 0,\n dimensions.width\n )\n : 0;\n\n const translateX =\n drawerPosition === 'left'\n ? minmax(translationX.value + touchDistance, -drawerWidth, 0)\n : minmax(translationX.value - touchDistance, 0, drawerWidth);\n\n return translateX;\n });\n\n const drawerAnimatedStyle = useAnimatedStyle(() => {\n if (drawerType === 'permanent') {\n return {};\n }\n\n return {\n transform: [\n {\n translateX: drawerType === 'back' ? 0 : translateX.value,\n },\n ],\n };\n });\n\n const contentAnimatedStyle = useAnimatedStyle(() => {\n if (drawerType === 'permanent') {\n return {};\n }\n\n return {\n transform: [\n {\n translateX:\n drawerType === 'front'\n ? 0\n : drawerPosition === 'left'\n ? drawerWidth + translateX.value\n : translateX.value - drawerWidth,\n },\n ],\n };\n });\n\n const progress = useDerivedValue(() => {\n return drawerType === 'permanent'\n ? 1\n : interpolate(\n translateX.value,\n [getDrawerTranslationX(false), getDrawerTranslationX(true)],\n [0, 1]\n );\n });\n\n return (\n <DrawerProgressContext.Provider value={progress}>\n <PanGestureHandler\n activeOffsetX={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n failOffsetY={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n hitSlop={hitSlop}\n enabled={drawerType !== 'permanent' && swipeEnabled}\n onGestureEvent={onGestureEvent}\n {...gestureHandlerProps}\n >\n {/* Immediate child of gesture handler needs to be an Animated.View */}\n <Animated.View\n style={[\n styles.main,\n {\n flexDirection:\n drawerType === 'permanent' && !isRight ? 'row-reverse' : 'row',\n },\n ]}\n >\n <Animated.View style={[styles.content, contentAnimatedStyle]}>\n <View\n accessibilityElementsHidden={isOpen && drawerType !== 'permanent'}\n importantForAccessibility={\n isOpen && drawerType !== 'permanent'\n ? 'no-hide-descendants'\n : 'auto'\n }\n style={styles.content}\n >\n {renderSceneContent()}\n </View>\n {drawerType !== 'permanent' ? (\n <Overlay\n progress={progress}\n onPress={() => toggleDrawer(false)}\n style={overlayStyle}\n />\n ) : null}\n </Animated.View>\n <Animated.View\n accessibilityViewIsModal={isOpen && drawerType !== 'permanent'}\n removeClippedSubviews={Platform.OS !== 'ios'}\n style={[\n styles.container,\n {\n position: drawerType === 'permanent' ? 'relative' : 'absolute',\n zIndex: drawerType === 'back' ? -1 : 0,\n },\n drawerAnimatedStyle,\n drawerStyle as any,\n ]}\n >\n {renderDrawerContent()}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </DrawerProgressContext.Provider>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n top: 0,\n bottom: 0,\n maxWidth: '100%',\n width: DEFAULT_DRAWER_WIDTH,\n },\n content: {\n flex: 1,\n },\n main: {\n flex: 1,\n ...Platform.select({\n // FIXME: We need to hide `overflowX` on Web so the translated content doesn't show offscreen.\n // But adding `overflowX: 'hidden'` prevents content from collapsing the URL bar.\n web: null,\n default: { overflow: 'hidden' },\n }),\n },\n});\n"]}
1
+ {"version":3,"sources":["Drawer.tsx"],"names":["SWIPE_DISTANCE_MINIMUM","DEFAULT_DRAWER_WIDTH","minmax","value","start","end","Math","min","max","Drawer","dimensions","drawerPosition","drawerStyle","drawerType","gestureHandlerProps","hideStatusBarOnOpen","keyboardDismissMode","onClose","onOpen","open","overlayStyle","renderDrawerContent","renderSceneContent","statusBarAnimation","swipeDistanceThreshold","swipeEdgeWidth","swipeEnabled","swipeVelocityThreshold","getDrawerWidth","width","StyleSheet","flatten","endsWith","percentage","Number","replace","isFinite","drawerWidth","isOpen","isRight","getDrawerTranslationX","React","useCallback","hideStatusBar","hide","StatusBar","setHidden","useEffect","interactionHandleRef","useRef","startInteraction","current","InteractionManager","createInteractionHandle","endInteraction","clearInteractionHandle","hideKeyboard","Keyboard","dismiss","onGestureStart","onGestureEnd","hitSlop","right","undefined","left","touchStartX","touchX","translationX","gestureState","GestureState","UNDETERMINED","toggleDrawer","velocity","translateX","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","onGestureEvent","onStart","event","ctx","startX","state","x","onActive","onEnd","nextOpen","abs","velocityX","touchDistance","ACTIVE","drawerAnimatedStyle","transform","contentAnimatedStyle","progress","styles","main","flexDirection","content","Platform","OS","container","position","zIndex","create","top","bottom","maxWidth","flex","select","web","default","overflow"],"mappings":";;;;;;;AAAA;;AACA;;AAQA;;AAKA;;AAWA;;AACA;;;;;;;;;;AAEA,MAAMA,sBAAsB,GAAG,CAA/B;AACA,MAAMC,oBAAoB,GAAG,KAA7B;;AAEA,MAAMC,MAAM,GAAG,CAACC,KAAD,EAAgBC,KAAhB,EAA+BC,GAA/B,KAA+C;AAC5D;;AAEA,SAAOC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASL,KAAT,EAAgBC,KAAhB,CAAT,EAAiCC,GAAjC,CAAP;AACD,CAJD;;AAMe,SAASI,MAAT,OAmBC;AAAA,MAnBe;AAC7BC,IAAAA,UAD6B;AAE7BC,IAAAA,cAF6B;AAG7BC,IAAAA,WAH6B;AAI7BC,IAAAA,UAJ6B;AAK7BC,IAAAA,mBAL6B;AAM7BC,IAAAA,mBAN6B;AAO7BC,IAAAA,mBAP6B;AAQ7BC,IAAAA,OAR6B;AAS7BC,IAAAA,MAT6B;AAU7BC,IAAAA,IAV6B;AAW7BC,IAAAA,YAX6B;AAY7BC,IAAAA,mBAZ6B;AAa7BC,IAAAA,kBAb6B;AAc7BC,IAAAA,kBAd6B;AAe7BC,IAAAA,sBAf6B;AAgB7BC,IAAAA,cAhB6B;AAiB7BC,IAAAA,YAjB6B;AAkB7BC,IAAAA;AAlB6B,GAmBf;;AACd,QAAMC,cAAc,GAAG,MAAc;AACnC,UAAM;AAAEC,MAAAA,KAAK,GAAG5B;AAAV,QACJ6B,wBAAWC,OAAX,CAAmBnB,WAAnB,KAAmC,EADrC;;AAGA,QAAI,OAAOiB,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACG,QAAN,CAAe,GAAf,CAAjC,EAAsD;AACpD;AACA,YAAMC,UAAU,GAAGC,MAAM,CAACL,KAAK,CAACM,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAD,CAAzB;;AAEA,UAAID,MAAM,CAACE,QAAP,CAAgBH,UAAhB,CAAJ,EAAiC;AAC/B,eAAOvB,UAAU,CAACmB,KAAX,IAAoBI,UAAU,GAAG,GAAjC,CAAP;AACD;AACF;;AAED,WAAO,OAAOJ,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC,CAA3C;AACD,GAdD;;AAgBA,QAAMQ,WAAW,GAAGT,cAAc,EAAlC;AAEA,QAAMU,MAAM,GAAGzB,UAAU,KAAK,WAAf,GAA6B,IAA7B,GAAoCM,IAAnD;AACA,QAAMoB,OAAO,GAAG5B,cAAc,KAAK,OAAnC;AAEA,QAAM6B,qBAAqB,GAAGC,KAAK,CAACC,WAAN,CAC3BvB,IAAD,IAAmB;AACjB;;AAEA,QAAIR,cAAc,KAAK,MAAvB,EAA+B;AAC7B,aAAOQ,IAAI,GAAG,CAAH,GAAO,CAACkB,WAAnB;AACD;;AAED,WAAOlB,IAAI,GAAG,CAAH,GAAOkB,WAAlB;AACD,GAT2B,EAU5B,CAAC1B,cAAD,EAAiB0B,WAAjB,CAV4B,CAA9B;AAaA,QAAMM,aAAa,GAAGF,KAAK,CAACC,WAAN,CACnBE,IAAD,IAAmB;AACjB,QAAI7B,mBAAJ,EAAyB;AACvB8B,6BAAUC,SAAV,CAAoBF,IAApB,EAA0BrB,kBAA1B;AACD;AACF,GALmB,EAMpB,CAACR,mBAAD,EAAsBQ,kBAAtB,CANoB,CAAtB;AASAkB,EAAAA,KAAK,CAACM,SAAN,CAAgB,MAAM;AACpBJ,IAAAA,aAAa,CAACL,MAAD,CAAb;AAEA,WAAO,MAAMK,aAAa,CAAC,KAAD,CAA1B;AACD,GAJD,EAIG,CAACL,MAAD,EAASvB,mBAAT,EAA8BQ,kBAA9B,EAAkDoB,aAAlD,CAJH;AAMA,QAAMK,oBAAoB,GAAGP,KAAK,CAACQ,MAAN,CAA4B,IAA5B,CAA7B;;AAEA,QAAMC,gBAAgB,GAAG,MAAM;AAC7BF,IAAAA,oBAAoB,CAACG,OAArB,GAA+BC,gCAAmBC,uBAAnB,EAA/B;AACD,GAFD;;AAIA,QAAMC,cAAc,GAAG,MAAM;AAC3B,QAAIN,oBAAoB,CAACG,OAArB,IAAgC,IAApC,EAA0C;AACxCC,sCAAmBG,sBAAnB,CAA0CP,oBAAoB,CAACG,OAA/D;;AACAH,MAAAA,oBAAoB,CAACG,OAArB,GAA+B,IAA/B;AACD;AACF,GALD;;AAOA,QAAMK,YAAY,GAAG,MAAM;AACzB,QAAIxC,mBAAmB,KAAK,SAA5B,EAAuC;AACrCyC,4BAASC,OAAT;AACD;AACF,GAJD;;AAMA,QAAMC,cAAc,GAAG,MAAM;AAC3BT,IAAAA,gBAAgB;AAChBM,IAAAA,YAAY;AACZb,IAAAA,aAAa,CAAC,IAAD,CAAb;AACD,GAJD;;AAMA,QAAMiB,YAAY,GAAG,MAAM;AACzBN,IAAAA,cAAc;AACf,GAFD,CA3Ec,CA+Ed;AACA;;;AACA,QAAMO,OAAO,GAAGtB,OAAO,GACnB;AACA;AACA;AAAEuB,IAAAA,KAAK,EAAE,CAAT;AAAYjC,IAAAA,KAAK,EAAES,MAAM,GAAGyB,SAAH,GAAetC;AAAxC,GAHmB,GAInB;AAAEuC,IAAAA,IAAI,EAAE,CAAR;AAAWnC,IAAAA,KAAK,EAAES,MAAM,GAAGyB,SAAH,GAAetC;AAAvC,GAJJ;AAMA,QAAMwC,WAAW,GAAG,2CAAe,CAAf,CAApB;AACA,QAAMC,MAAM,GAAG,2CAAe,CAAf,CAAf;AACA,QAAMC,YAAY,GAAG,2CAAe3B,qBAAqB,CAACrB,IAAD,CAApC,CAArB;AACA,QAAMiD,YAAY,GAAG,2CAA6BC,iCAAaC,YAA1C,CAArB;AAEA,QAAMC,YAAY,GAAG9B,KAAK,CAACC,WAAN,CACnB,CAACvB,IAAD,EAAgBqD,QAAhB,KAAsC;AACpC;;AAEA,UAAMC,UAAU,GAAGjC,qBAAqB,CAACrB,IAAD,CAAxC;AAEA8C,IAAAA,WAAW,CAAC9D,KAAZ,GAAoB,CAApB;AACA+D,IAAAA,MAAM,CAAC/D,KAAP,GAAe,CAAf;AACAgE,IAAAA,YAAY,CAAChE,KAAb,GAAqB,uCACnBsE,UADmB,EAEnB;AACED,MAAAA,QADF;AAEEE,MAAAA,SAAS,EAAE,IAFb;AAGEC,MAAAA,OAAO,EAAE,GAHX;AAIEC,MAAAA,IAAI,EAAE,CAJR;AAKEC,MAAAA,iBAAiB,EAAE,IALrB;AAMEC,MAAAA,yBAAyB,EAAE,IAN7B;AAOEC,MAAAA,kBAAkB,EAAE;AAPtB,KAFmB,EAWnB,MAAM;AACJ,UAAIZ,YAAY,CAAChE,KAAb,KAAuBqC,qBAAqB,CAAC,IAAD,CAAhD,EAAwD;AACtD,4CAAQtB,MAAR;AACD,OAFD,MAEO,IAAIiD,YAAY,CAAChE,KAAb,KAAuBqC,qBAAqB,CAAC,KAAD,CAAhD,EAAyD;AAC9D,4CAAQvB,OAAR;AACD;AACF,KAjBkB,CAArB;AAmBD,GA3BkB,EA4BnB,CAACuB,qBAAD,EAAwBvB,OAAxB,EAAiCC,MAAjC,EAAyC+C,WAAzC,EAAsDC,MAAtD,EAA8DC,YAA9D,CA5BmB,CAArB;AA+BA1B,EAAAA,KAAK,CAACM,SAAN,CAAgB,MAAMwB,YAAY,CAACpD,IAAD,CAAlC,EAA0C,CAACA,IAAD,EAAOoD,YAAP,CAA1C;AAEA,QAAMS,cAAc,GAAG,sDAGrB;AACAC,IAAAA,OAAO,EAAE,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACvBA,MAAAA,GAAG,CAACC,MAAJ,GAAajB,YAAY,CAAChE,KAA1B;AACAiE,MAAAA,YAAY,CAACjE,KAAb,GAAqB+E,KAAK,CAACG,KAA3B;AACApB,MAAAA,WAAW,CAAC9D,KAAZ,GAAoB+E,KAAK,CAACI,CAA1B;AAEA,0CAAQ3B,cAAR;AACD,KAPD;AAQA4B,IAAAA,QAAQ,EAAE,CAACL,KAAD,EAAQC,GAAR,KAAgB;AACxBjB,MAAAA,MAAM,CAAC/D,KAAP,GAAe+E,KAAK,CAACI,CAArB;AACAnB,MAAAA,YAAY,CAAChE,KAAb,GAAqBgF,GAAG,CAACC,MAAJ,GAAaF,KAAK,CAACf,YAAxC;AACAC,MAAAA,YAAY,CAACjE,KAAb,GAAqB+E,KAAK,CAACG,KAA3B;AACD,KAZD;AAaAG,IAAAA,KAAK,EAAGN,KAAD,IAAW;AAChBd,MAAAA,YAAY,CAACjE,KAAb,GAAqB+E,KAAK,CAACG,KAA3B;AAEA,YAAMI,QAAQ,GACXnF,IAAI,CAACoF,GAAL,CAASR,KAAK,CAACf,YAAf,IAA+BnE,sBAA/B,IACCM,IAAI,CAACoF,GAAL,CAASR,KAAK,CAACf,YAAf,IAA+BxC,sBADjC,IAEArB,IAAI,CAACoF,GAAL,CAASR,KAAK,CAACf,YAAf,IAA+B3C,sBAF/B,GAGIb,cAAc,KAAK,MAAnB,GACE;AACA,OAACuE,KAAK,CAACS,SAAN,KAAoB,CAApB,GAAwBT,KAAK,CAACf,YAA9B,GAA6Ce,KAAK,CAACS,SAApD,IAAiE,CAFnE,GAGE;AACA,OAACT,KAAK,CAACS,SAAN,KAAoB,CAApB,GAAwBT,KAAK,CAACf,YAA9B,GAA6Ce,KAAK,CAACS,SAApD,IAAiE,CAPvE,GAQIxE,IATN;AAWAoD,MAAAA,YAAY,CAACkB,QAAD,EAAWP,KAAK,CAACS,SAAjB,CAAZ;AACA,0CAAQ/B,YAAR;AACD;AA7BD,GAHqB,CAAvB;AAmCA,QAAMa,UAAU,GAAG,4CAAgB,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAMmB,aAAa,GACjB/E,UAAU,KAAK,OAAf,IAA0BuD,YAAY,CAACjE,KAAb,KAAuBkE,iCAAawB,MAA9D,GACI3F,MAAM,CACJS,cAAc,KAAK,MAAnB,GACIsD,WAAW,CAAC9D,KAAZ,GAAoBkC,WADxB,GAEI3B,UAAU,CAACmB,KAAX,GAAmBQ,WAAnB,GAAiC4B,WAAW,CAAC9D,KAH7C,EAIJ,CAJI,EAKJO,UAAU,CAACmB,KALP,CADV,GAQI,CATN;AAWA,UAAM4C,UAAU,GACd9D,cAAc,KAAK,MAAnB,GACIT,MAAM,CAACiE,YAAY,CAAChE,KAAb,GAAqByF,aAAtB,EAAqC,CAACvD,WAAtC,EAAmD,CAAnD,CADV,GAEInC,MAAM,CAACiE,YAAY,CAAChE,KAAb,GAAqByF,aAAtB,EAAqC,CAArC,EAAwCvD,WAAxC,CAHZ;AAKA,WAAOoC,UAAP;AACD,GA3CkB,CAAnB;AA6CA,QAAMqB,mBAAmB,GAAG,6CAAiB,MAAM;AACjD,WAAO;AACLC,MAAAA,SAAS,EACPlF,UAAU,KAAK,WAAf,GACI;AACA;AACA,QAHJ,GAII,CACE;AACE4D,QAAAA,UAAU,EAAE5D,UAAU,KAAK,MAAf,GAAwB,CAAxB,GAA4B4D,UAAU,CAACtE;AADrD,OADF;AAND,KAAP;AAYD,GAb2B,CAA5B;AAeA,QAAM6F,oBAAoB,GAAG,6CAAiB,MAAM;AAClD,WAAO;AACLD,MAAAA,SAAS,EACPlF,UAAU,KAAK,WAAf,GACI;AACA;AACA,QAHJ,GAII,CACE;AACE4D,QAAAA,UAAU,EACR5D,UAAU,KAAK,OAAf,GACI,CADJ,GAEIF,cAAc,KAAK,MAAnB,GACA0B,WAAW,GAAGoC,UAAU,CAACtE,KADzB,GAEAsE,UAAU,CAACtE,KAAX,GAAmBkC;AAN3B,OADF;AAND,KAAP;AAiBD,GAlB4B,CAA7B;AAoBA,QAAM4D,QAAQ,GAAG,4CAAgB,MAAM;AACrC,WAAOpF,UAAU,KAAK,WAAf,GACH,CADG,GAEH,wCACE4D,UAAU,CAACtE,KADb,EAEE,CAACqC,qBAAqB,CAAC,KAAD,CAAtB,EAA+BA,qBAAqB,CAAC,IAAD,CAApD,CAFF,EAGE,CAAC,CAAD,EAAI,CAAJ,CAHF,CAFJ;AAOD,GARgB,CAAjB;AAUA,sBACE,oBAAC,8BAAD,CAAuB,QAAvB;AAAgC,IAAA,KAAK,EAAEyD;AAAvC,kBACE,oBAAC,4CAAD;AACE,IAAA,aAAa,EAAE,CAAC,CAACjG,sBAAF,EAA0BA,sBAA1B,CADjB;AAEE,IAAA,WAAW,EAAE,CAAC,CAACA,sBAAF,EAA0BA,sBAA1B,CAFf;AAGE,IAAA,OAAO,EAAE6D,OAHX;AAIE,IAAA,OAAO,EAAEhD,UAAU,KAAK,WAAf,IAA8Ba,YAJzC;AAKE,IAAA,cAAc,EAAEsD;AALlB,KAMMlE,mBANN,gBASE,oBAAC,8BAAD,CAAU,IAAV;AACE,IAAA,KAAK,EAAE,CACLoF,MAAM,CAACC,IADF,EAEL;AACEC,MAAAA,aAAa,EACXvF,UAAU,KAAK,WAAf,IAA8B,CAAC0B,OAA/B,GAAyC,aAAzC,GAAyD;AAF7D,KAFK;AADT,kBASE,oBAAC,8BAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAAC2D,MAAM,CAACG,OAAR,EAAiBL,oBAAjB;AAAtB,kBACE,oBAAC,iBAAD;AACE,IAAA,2BAA2B,EAAE1D,MAAM,IAAIzB,UAAU,KAAK,WADxD;AAEE,IAAA,yBAAyB,EACvByB,MAAM,IAAIzB,UAAU,KAAK,WAAzB,GACI,qBADJ,GAEI,MALR;AAOE,IAAA,KAAK,EAAEqF,MAAM,CAACG;AAPhB,KASG/E,kBAAkB,EATrB,CADF,EAYGT,UAAU,KAAK,WAAf,gBACC,oBAAC,gBAAD;AACE,IAAA,QAAQ,EAAEoF,QADZ;AAEE,IAAA,OAAO,EAAE,MAAM1B,YAAY,CAAC,KAAD,CAF7B;AAGE,IAAA,KAAK,EAAEnD;AAHT,IADD,GAMG,IAlBN,CATF,eA6BE,oBAAC,8BAAD,CAAU,IAAV;AACE,IAAA,wBAAwB,EAAEkB,MAAM,IAAIzB,UAAU,KAAK,WADrD;AAEE,IAAA,qBAAqB,EAAEyF,sBAASC,EAAT,KAAgB,KAFzC;AAGE,IAAA,KAAK,EAAE,CACLL,MAAM,CAACM,SADF,EAEL;AACEC,MAAAA,QAAQ,EAAE5F,UAAU,KAAK,WAAf,GAA6B,UAA7B,GAA0C,UADtD;AAEE6F,MAAAA,MAAM,EAAE7F,UAAU,KAAK,MAAf,GAAwB,CAAC,CAAzB,GAA6B;AAFvC,KAFK,EAMLiF,mBANK,EAOLlF,WAPK;AAHT,KAaGS,mBAAmB,EAbtB,CA7BF,CATF,CADF,CADF;AA2DD;;AAED,MAAM6E,MAAM,GAAGpE,wBAAW6E,MAAX,CAAkB;AAC/BH,EAAAA,SAAS,EAAE;AACTI,IAAAA,GAAG,EAAE,CADI;AAETC,IAAAA,MAAM,EAAE,CAFC;AAGTC,IAAAA,QAAQ,EAAE,MAHD;AAITjF,IAAAA,KAAK,EAAE5B;AAJE,GADoB;AAO/BoG,EAAAA,OAAO,EAAE;AACPU,IAAAA,IAAI,EAAE;AADC,GAPsB;AAU/BZ,EAAAA,IAAI,EAAE;AACJY,IAAAA,IAAI,EAAE,CADF;AAEJ,OAAGT,sBAASU,MAAT,CAAgB;AACjB;AACA;AACAC,MAAAA,GAAG,EAAE,IAHY;AAIjBC,MAAAA,OAAO,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ;AAJQ,KAAhB;AAFC;AAVyB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n InteractionManager,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State as GestureState,\n} from 'react-native-gesture-handler';\nimport Animated, {\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n} from 'react-native-reanimated';\n\nimport type { DrawerProps } from '../../types';\nimport DrawerProgressContext from '../../utils/DrawerProgressContext';\nimport Overlay from './Overlay';\n\nconst SWIPE_DISTANCE_MINIMUM = 5;\nconst DEFAULT_DRAWER_WIDTH = '80%';\n\nconst minmax = (value: number, start: number, end: number) => {\n 'worklet';\n\n return Math.min(Math.max(value, start), end);\n};\n\nexport default function Drawer({\n dimensions,\n drawerPosition,\n drawerStyle,\n drawerType,\n gestureHandlerProps,\n hideStatusBarOnOpen,\n keyboardDismissMode,\n onClose,\n onOpen,\n open,\n overlayStyle,\n renderDrawerContent,\n renderSceneContent,\n statusBarAnimation,\n swipeDistanceThreshold,\n swipeEdgeWidth,\n swipeEnabled,\n swipeVelocityThreshold,\n}: DrawerProps) {\n const getDrawerWidth = (): number => {\n const { width = DEFAULT_DRAWER_WIDTH } =\n StyleSheet.flatten(drawerStyle) || {};\n\n if (typeof width === 'string' && width.endsWith('%')) {\n // Try to calculate width if a percentage is given\n const percentage = Number(width.replace(/%$/, ''));\n\n if (Number.isFinite(percentage)) {\n return dimensions.width * (percentage / 100);\n }\n }\n\n return typeof width === 'number' ? width : 0;\n };\n\n const drawerWidth = getDrawerWidth();\n\n const isOpen = drawerType === 'permanent' ? true : open;\n const isRight = drawerPosition === 'right';\n\n const getDrawerTranslationX = React.useCallback(\n (open: boolean) => {\n 'worklet';\n\n if (drawerPosition === 'left') {\n return open ? 0 : -drawerWidth;\n }\n\n return open ? 0 : drawerWidth;\n },\n [drawerPosition, drawerWidth]\n );\n\n const hideStatusBar = React.useCallback(\n (hide: boolean) => {\n if (hideStatusBarOnOpen) {\n StatusBar.setHidden(hide, statusBarAnimation);\n }\n },\n [hideStatusBarOnOpen, statusBarAnimation]\n );\n\n React.useEffect(() => {\n hideStatusBar(isOpen);\n\n return () => hideStatusBar(false);\n }, [isOpen, hideStatusBarOnOpen, statusBarAnimation, hideStatusBar]);\n\n const interactionHandleRef = React.useRef<number | null>(null);\n\n const startInteraction = () => {\n interactionHandleRef.current = InteractionManager.createInteractionHandle();\n };\n\n const endInteraction = () => {\n if (interactionHandleRef.current != null) {\n InteractionManager.clearInteractionHandle(interactionHandleRef.current);\n interactionHandleRef.current = null;\n }\n };\n\n const hideKeyboard = () => {\n if (keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n };\n\n const onGestureStart = () => {\n startInteraction();\n hideKeyboard();\n hideStatusBar(true);\n };\n\n const onGestureEnd = () => {\n endInteraction();\n };\n\n // FIXME: Currently hitSlop is broken when on Android when drawer is on right\n // https://github.com/software-mansion/react-native-gesture-handler/issues/569\n const hitSlop = isRight\n ? // Extend hitSlop to the side of the screen when drawer is closed\n // This lets the user drag the drawer from the side of the screen\n { right: 0, width: isOpen ? undefined : swipeEdgeWidth }\n : { left: 0, width: isOpen ? undefined : swipeEdgeWidth };\n\n const touchStartX = useSharedValue(0);\n const touchX = useSharedValue(0);\n const translationX = useSharedValue(getDrawerTranslationX(open));\n const gestureState = useSharedValue<GestureState>(GestureState.UNDETERMINED);\n\n const toggleDrawer = React.useCallback(\n (open: boolean, velocity?: number) => {\n 'worklet';\n\n const translateX = getDrawerTranslationX(open);\n\n touchStartX.value = 0;\n touchX.value = 0;\n translationX.value = withSpring(\n translateX,\n {\n velocity,\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n },\n () => {\n if (translationX.value === getDrawerTranslationX(true)) {\n runOnJS(onOpen)();\n } else if (translationX.value === getDrawerTranslationX(false)) {\n runOnJS(onClose)();\n }\n }\n );\n },\n [getDrawerTranslationX, onClose, onOpen, touchStartX, touchX, translationX]\n );\n\n React.useEffect(() => toggleDrawer(open), [open, toggleDrawer]);\n\n const onGestureEvent = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n { startX: number }\n >({\n onStart: (event, ctx) => {\n ctx.startX = translationX.value;\n gestureState.value = event.state;\n touchStartX.value = event.x;\n\n runOnJS(onGestureStart)();\n },\n onActive: (event, ctx) => {\n touchX.value = event.x;\n translationX.value = ctx.startX + event.translationX;\n gestureState.value = event.state;\n },\n onEnd: (event) => {\n gestureState.value = event.state;\n\n const nextOpen =\n (Math.abs(event.translationX) > SWIPE_DISTANCE_MINIMUM &&\n Math.abs(event.translationX) > swipeVelocityThreshold) ||\n Math.abs(event.translationX) > swipeDistanceThreshold\n ? drawerPosition === 'left'\n ? // If swiped to right, open the drawer, otherwise close it\n (event.velocityX === 0 ? event.translationX : event.velocityX) > 0\n : // If swiped to left, open the drawer, otherwise close it\n (event.velocityX === 0 ? event.translationX : event.velocityX) < 0\n : open;\n\n toggleDrawer(nextOpen, event.velocityX);\n runOnJS(onGestureEnd)();\n },\n });\n\n const translateX = useDerivedValue(() => {\n // Comment stolen from react-native-gesture-handler/DrawerLayout\n //\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep start position\n // of the gesture. Then we use that value to calculate how much we need to subtract from\n // the translationX. If the gesture started on the greyed out area we take the distance from the\n // edge of the drawer to the start position. Otherwise we don't subtract at all and the\n // drawer be pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n const touchDistance =\n drawerType === 'front' && gestureState.value === GestureState.ACTIVE\n ? minmax(\n drawerPosition === 'left'\n ? touchStartX.value - drawerWidth\n : dimensions.width - drawerWidth - touchStartX.value,\n 0,\n dimensions.width\n )\n : 0;\n\n const translateX =\n drawerPosition === 'left'\n ? minmax(translationX.value + touchDistance, -drawerWidth, 0)\n : minmax(translationX.value - touchDistance, 0, drawerWidth);\n\n return translateX;\n });\n\n const drawerAnimatedStyle = useAnimatedStyle(() => {\n return {\n transform:\n drawerType === 'permanent'\n ? // Reanimated needs the property to be present, but it results in Browser bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=20574\n []\n : [\n {\n translateX: drawerType === 'back' ? 0 : translateX.value,\n },\n ],\n };\n });\n\n const contentAnimatedStyle = useAnimatedStyle(() => {\n return {\n transform:\n drawerType === 'permanent'\n ? // Reanimated needs the property to be present, but it results in Browser bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=20574\n []\n : [\n {\n translateX:\n drawerType === 'front'\n ? 0\n : drawerPosition === 'left'\n ? drawerWidth + translateX.value\n : translateX.value - drawerWidth,\n },\n ],\n };\n });\n\n const progress = useDerivedValue(() => {\n return drawerType === 'permanent'\n ? 1\n : interpolate(\n translateX.value,\n [getDrawerTranslationX(false), getDrawerTranslationX(true)],\n [0, 1]\n );\n });\n\n return (\n <DrawerProgressContext.Provider value={progress}>\n <PanGestureHandler\n activeOffsetX={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n failOffsetY={[-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM]}\n hitSlop={hitSlop}\n enabled={drawerType !== 'permanent' && swipeEnabled}\n onGestureEvent={onGestureEvent}\n {...gestureHandlerProps}\n >\n {/* Immediate child of gesture handler needs to be an Animated.View */}\n <Animated.View\n style={[\n styles.main,\n {\n flexDirection:\n drawerType === 'permanent' && !isRight ? 'row-reverse' : 'row',\n },\n ]}\n >\n <Animated.View style={[styles.content, contentAnimatedStyle]}>\n <View\n accessibilityElementsHidden={isOpen && drawerType !== 'permanent'}\n importantForAccessibility={\n isOpen && drawerType !== 'permanent'\n ? 'no-hide-descendants'\n : 'auto'\n }\n style={styles.content}\n >\n {renderSceneContent()}\n </View>\n {drawerType !== 'permanent' ? (\n <Overlay\n progress={progress}\n onPress={() => toggleDrawer(false)}\n style={overlayStyle}\n />\n ) : null}\n </Animated.View>\n <Animated.View\n accessibilityViewIsModal={isOpen && drawerType !== 'permanent'}\n removeClippedSubviews={Platform.OS !== 'ios'}\n style={[\n styles.container,\n {\n position: drawerType === 'permanent' ? 'relative' : 'absolute',\n zIndex: drawerType === 'back' ? -1 : 0,\n },\n drawerAnimatedStyle,\n drawerStyle as any,\n ]}\n >\n {renderDrawerContent()}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </DrawerProgressContext.Provider>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n top: 0,\n bottom: 0,\n maxWidth: '100%',\n width: DEFAULT_DRAWER_WIDTH,\n },\n content: {\n flex: 1,\n },\n main: {\n flex: 1,\n ...Platform.select({\n // FIXME: We need to hide `overflowX` on Web so the translated content doesn't show offscreen.\n // But adding `overflowX: 'hidden'` prevents content from collapsing the URL bar.\n web: null,\n default: { overflow: 'hidden' },\n }),\n },\n});\n"]}
@@ -18,24 +18,33 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
18
18
  function _extends() { _extends = Object.assign || 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); }
19
19
 
20
20
  const PROGRESS_EPSILON = 0.05;
21
- const Overlay = /*#__PURE__*/React.forwardRef(function Overlay({
22
- progress,
23
- onPress,
24
- style,
25
- ...props
26
- }, ref) {
21
+ const Overlay = /*#__PURE__*/React.forwardRef(function Overlay(_ref, ref) {
22
+ let {
23
+ progress,
24
+ onPress,
25
+ style,
26
+ ...props
27
+ } = _ref;
27
28
  const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
28
29
  return {
29
30
  opacity: progress.value,
30
31
  // We don't want the user to be able to press through the overlay when drawer is open
31
- // One approach is to adjust the pointerEvents based on the progress
32
- // But we can also send the overlay behind the screen
32
+ // We can send the overlay behind the screen to avoid it
33
33
  zIndex: progress.value > PROGRESS_EPSILON ? 0 : -1
34
34
  };
35
35
  });
36
+ const animatedProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
37
+ const active = progress.value > PROGRESS_EPSILON;
38
+ return {
39
+ pointerEvents: active ? 'auto' : 'none',
40
+ accessibilityElementsHidden: !active,
41
+ importantForAccessibility: active ? 'auto' : 'no-hide-descendants'
42
+ };
43
+ });
36
44
  return /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, _extends({}, props, {
37
45
  ref: ref,
38
- style: [styles.overlay, overlayStyle, animatedStyle, style]
46
+ style: [styles.overlay, overlayStyle, animatedStyle, style],
47
+ animatedProps: animatedProps
39
48
  }), /*#__PURE__*/React.createElement(_reactNative.Pressable, {
40
49
  onPress: onPress,
41
50
  style: styles.pressable
@@ -1 +1 @@
1
- {"version":3,"sources":["Overlay.tsx"],"names":["PROGRESS_EPSILON","Overlay","React","forwardRef","progress","onPress","style","props","ref","animatedStyle","opacity","value","zIndex","styles","overlay","overlayStyle","pressable","Platform","select","web","WebkitTapHighlightColor","default","StyleSheet","create","absoluteFillObject","backgroundColor","flex"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,gBAAgB,GAAG,IAAzB;AAOA,MAAMC,OAAO,gBAAGC,KAAK,CAACC,UAAN,CAAiB,SAASF,OAAT,CAC/B;AAAEG,EAAAA,QAAF;AAAYC,EAAAA,OAAZ;AAAqBC,EAAAA,KAArB;AAA4B,KAAGC;AAA/B,CAD+B,EAE/BC,GAF+B,EAG/B;AACA,QAAMC,aAAa,GAAG,6CAAiB,MAAM;AAC3C,WAAO;AACLC,MAAAA,OAAO,EAAEN,QAAQ,CAACO,KADb;AAEL;AACA;AACA;AACAC,MAAAA,MAAM,EAAER,QAAQ,CAACO,KAAT,GAAiBX,gBAAjB,GAAoC,CAApC,GAAwC,CAAC;AAL5C,KAAP;AAOD,GARqB,CAAtB;AAUA,sBACE,oBAAC,8BAAD,CAAU,IAAV,eACMO,KADN;AAEE,IAAA,GAAG,EAAEC,GAFP;AAGE,IAAA,KAAK,EAAE,CAACK,MAAM,CAACC,OAAR,EAAiBC,YAAjB,EAA+BN,aAA/B,EAA8CH,KAA9C;AAHT,mBAKE,oBAAC,sBAAD;AAAW,IAAA,OAAO,EAAED,OAApB;AAA6B,IAAA,KAAK,EAAEQ,MAAM,CAACG;AAA3C,IALF,CADF;AASD,CAvBe,CAAhB;;AAyBA,MAAMD,YAAY,GAAGE,sBAASC,MAAT,CAAwC;AAC3DC,EAAAA,GAAG,EAAE;AACH;AACA;AACAC,IAAAA,uBAAuB,EAAE;AAHtB,GADsD;AAM3DC,EAAAA,OAAO,EAAE;AANkD,CAAxC,CAArB;;AASA,MAAMR,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,OAAO,EAAE,EACP,GAAGQ,wBAAWE,kBADP;AAEPC,IAAAA,eAAe,EAAE;AAFV,GADsB;AAK/BT,EAAAA,SAAS,EAAE;AACTU,IAAAA,IAAI,EAAE;AADG;AALoB,CAAlB,CAAf;;eAUezB,O","sourcesContent":["import * as React from 'react';\nimport { Platform, Pressable, StyleSheet } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\nconst PROGRESS_EPSILON = 0.05;\n\ntype Props = React.ComponentProps<typeof Animated.View> & {\n progress: Animated.SharedValue<number>;\n onPress: () => void;\n};\n\nconst Overlay = React.forwardRef(function Overlay(\n { progress, onPress, style, ...props }: Props,\n ref: React.Ref<Animated.View>\n) {\n const animatedStyle = useAnimatedStyle(() => {\n return {\n opacity: progress.value,\n // We don't want the user to be able to press through the overlay when drawer is open\n // One approach is to adjust the pointerEvents based on the progress\n // But we can also send the overlay behind the screen\n zIndex: progress.value > PROGRESS_EPSILON ? 0 : -1,\n };\n });\n\n return (\n <Animated.View\n {...props}\n ref={ref}\n style={[styles.overlay, overlayStyle, animatedStyle, style]}\n >\n <Pressable onPress={onPress} style={styles.pressable} />\n </Animated.View>\n );\n});\n\nconst overlayStyle = Platform.select<Record<string, string>>({\n web: {\n // Disable touch highlight on mobile Safari.\n // WebkitTapHighlightColor must be used outside of StyleSheet.create because react-native-web will omit the property.\n WebkitTapHighlightColor: 'transparent',\n },\n default: {},\n});\n\nconst styles = StyleSheet.create({\n overlay: {\n ...StyleSheet.absoluteFillObject,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n pressable: {\n flex: 1,\n },\n});\n\nexport default Overlay;\n"]}
1
+ {"version":3,"sources":["Overlay.tsx"],"names":["PROGRESS_EPSILON","Overlay","React","forwardRef","ref","progress","onPress","style","props","animatedStyle","opacity","value","zIndex","animatedProps","active","pointerEvents","accessibilityElementsHidden","importantForAccessibility","styles","overlay","overlayStyle","pressable","Platform","select","web","WebkitTapHighlightColor","default","StyleSheet","create","absoluteFillObject","backgroundColor","flex"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAKA,MAAMA,gBAAgB,GAAG,IAAzB;AAOA,MAAMC,OAAO,gBAAGC,KAAK,CAACC,UAAN,CAAiB,SAASF,OAAT,OAE/BG,GAF+B,EAG/B;AAAA,MAFA;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,OAAZ;AAAqBC,IAAAA,KAArB;AAA4B,OAAGC;AAA/B,GAEA;AACA,QAAMC,aAAa,GAAG,6CAAiB,MAAM;AAC3C,WAAO;AACLC,MAAAA,OAAO,EAAEL,QAAQ,CAACM,KADb;AAEL;AACA;AACAC,MAAAA,MAAM,EAAEP,QAAQ,CAACM,KAAT,GAAiBX,gBAAjB,GAAoC,CAApC,GAAwC,CAAC;AAJ5C,KAAP;AAMD,GAPqB,CAAtB;AASA,QAAMa,aAAa,GAAG,6CAAiB,MAAM;AAC3C,UAAMC,MAAM,GAAGT,QAAQ,CAACM,KAAT,GAAiBX,gBAAhC;AAEA,WAAO;AACLe,MAAAA,aAAa,EAAED,MAAM,GAAG,MAAH,GAAY,MAD5B;AAELE,MAAAA,2BAA2B,EAAE,CAACF,MAFzB;AAGLG,MAAAA,yBAAyB,EAAEH,MAAM,GAAG,MAAH,GAAY;AAHxC,KAAP;AAKD,GARqB,CAAtB;AAUA,sBACE,oBAAC,8BAAD,CAAU,IAAV,eACMN,KADN;AAEE,IAAA,GAAG,EAAEJ,GAFP;AAGE,IAAA,KAAK,EAAE,CAACc,MAAM,CAACC,OAAR,EAAiBC,YAAjB,EAA+BX,aAA/B,EAA8CF,KAA9C,CAHT;AAIE,IAAA,aAAa,EAAEM;AAJjB,mBAME,oBAAC,sBAAD;AAAW,IAAA,OAAO,EAAEP,OAApB;AAA6B,IAAA,KAAK,EAAEY,MAAM,CAACG;AAA3C,IANF,CADF;AAUD,CAjCe,CAAhB;;AAmCA,MAAMD,YAAY,GAAGE,sBAASC,MAAT,CAAwC;AAC3DC,EAAAA,GAAG,EAAE;AACH;AACA;AACAC,IAAAA,uBAAuB,EAAE;AAHtB,GADsD;AAM3DC,EAAAA,OAAO,EAAE;AANkD,CAAxC,CAArB;;AASA,MAAMR,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,OAAO,EAAE,EACP,GAAGQ,wBAAWE,kBADP;AAEPC,IAAAA,eAAe,EAAE;AAFV,GADsB;AAK/BT,EAAAA,SAAS,EAAE;AACTU,IAAAA,IAAI,EAAE;AADG;AALoB,CAAlB,CAAf;;eAUe9B,O","sourcesContent":["import * as React from 'react';\nimport { Platform, Pressable, StyleSheet } from 'react-native';\nimport Animated, {\n useAnimatedProps,\n useAnimatedStyle,\n} from 'react-native-reanimated';\n\nconst PROGRESS_EPSILON = 0.05;\n\ntype Props = React.ComponentProps<typeof Animated.View> & {\n progress: Animated.SharedValue<number>;\n onPress: () => void;\n};\n\nconst Overlay = React.forwardRef(function Overlay(\n { progress, onPress, style, ...props }: Props,\n ref: React.Ref<Animated.View>\n) {\n const animatedStyle = useAnimatedStyle(() => {\n return {\n opacity: progress.value,\n // We don't want the user to be able to press through the overlay when drawer is open\n // We can send the overlay behind the screen to avoid it\n zIndex: progress.value > PROGRESS_EPSILON ? 0 : -1,\n };\n });\n\n const animatedProps = useAnimatedProps(() => {\n const active = progress.value > PROGRESS_EPSILON;\n\n return {\n pointerEvents: active ? 'auto' : 'none',\n accessibilityElementsHidden: !active,\n importantForAccessibility: active ? 'auto' : 'no-hide-descendants',\n } as const;\n });\n\n return (\n <Animated.View\n {...props}\n ref={ref}\n style={[styles.overlay, overlayStyle, animatedStyle, style]}\n animatedProps={animatedProps}\n >\n <Pressable onPress={onPress} style={styles.pressable} />\n </Animated.View>\n );\n});\n\nconst overlayStyle = Platform.select<Record<string, string>>({\n web: {\n // Disable touch highlight on mobile Safari.\n // WebkitTapHighlightColor must be used outside of StyleSheet.create because react-native-web will omit the property.\n WebkitTapHighlightColor: 'transparent',\n },\n default: {},\n});\n\nconst styles = StyleSheet.create({\n overlay: {\n ...StyleSheet.absoluteFillObject,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n },\n pressable: {\n flex: 1,\n },\n});\n\nexport default Overlay;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["default","createDrawerNavigator","DrawerContent","DrawerContentScrollView","DrawerItem","DrawerItemList","DrawerToggleButton","DrawerView","DrawerGestureContext","DrawerProgressContext","getDrawerStatusFromState","useDrawerProgress","useDrawerStatus"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,qBAApB,QAAiD,oCAAjD;AAEA;AACA;AACA;;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,uBAAzC;AACA,SAASF,OAAO,IAAIG,uBAApB,QAAmD,iCAAnD;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,oBAAtC;AACA,SAASJ,OAAO,IAAIK,cAApB,QAA0C,wBAA1C;AACA,SAASL,OAAO,IAAIM,kBAApB,QAA8C,4BAA9C;AACA,SAASN,OAAO,IAAIO,UAApB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SAASP,OAAO,IAAIQ,oBAApB,QAAgD,8BAAhD;AACA,SAASR,OAAO,IAAIS,qBAApB,QAAiD,+BAAjD;AACA,SAAST,OAAO,IAAIU,wBAApB,QAAoD,kCAApD;AACA,SAASV,OAAO,IAAIW,iBAApB,QAA6C,2BAA7C;AACA,SAASX,OAAO,IAAIY,eAApB,QAA2C,yBAA3C;AAEA;AACA;AACA","sourcesContent":["/**\n * Navigators\n */\nexport { default as createDrawerNavigator } from './navigators/createDrawerNavigator';\n\n/**\n * Views\n */\nexport { default as DrawerContent } from './views/DrawerContent';\nexport { default as DrawerContentScrollView } from './views/DrawerContentScrollView';\nexport { default as DrawerItem } from './views/DrawerItem';\nexport { default as DrawerItemList } from './views/DrawerItemList';\nexport { default as DrawerToggleButton } from './views/DrawerToggleButton';\nexport { default as DrawerView } from './views/DrawerView';\n\n/**\n * Utilities\n */\nexport { default as DrawerGestureContext } from './utils/DrawerGestureContext';\nexport { default as DrawerProgressContext } from './utils/DrawerProgressContext';\nexport { default as getDrawerStatusFromState } from './utils/getDrawerStatusFromState';\nexport { default as useDrawerProgress } from './utils/useDrawerProgress';\nexport { default as useDrawerStatus } from './utils/useDrawerStatus';\n\n/**\n * Types\n */\nexport type {\n DrawerContentComponentProps,\n DrawerHeaderProps,\n DrawerNavigationOptions,\n DrawerNavigationProp,\n DrawerScreenProps,\n} from './types';\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["default","createDrawerNavigator","DrawerContent","DrawerContentScrollView","DrawerItem","DrawerItemList","DrawerToggleButton","DrawerView","DrawerGestureContext","DrawerProgressContext","getDrawerStatusFromState","useDrawerProgress","useDrawerStatus"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,qBAApB,QAAiD,oCAAjD;AAEA;AACA;AACA;;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,uBAAzC;AACA,SAASF,OAAO,IAAIG,uBAApB,QAAmD,iCAAnD;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,oBAAtC;AACA,SAASJ,OAAO,IAAIK,cAApB,QAA0C,wBAA1C;AACA,SAASL,OAAO,IAAIM,kBAApB,QAA8C,4BAA9C;AACA,SAASN,OAAO,IAAIO,UAApB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SAASP,OAAO,IAAIQ,oBAApB,QAAgD,8BAAhD;AACA,SAASR,OAAO,IAAIS,qBAApB,QAAiD,+BAAjD;AACA,SAAST,OAAO,IAAIU,wBAApB,QAAoD,kCAApD;AACA,SAASV,OAAO,IAAIW,iBAApB,QAA6C,2BAA7C;AACA,SAASX,OAAO,IAAIY,eAApB,QAA2C,yBAA3C;AAEA;AACA;AACA","sourcesContent":["/**\n * Navigators\n */\nexport { default as createDrawerNavigator } from './navigators/createDrawerNavigator';\n\n/**\n * Views\n */\nexport { default as DrawerContent } from './views/DrawerContent';\nexport { default as DrawerContentScrollView } from './views/DrawerContentScrollView';\nexport { default as DrawerItem } from './views/DrawerItem';\nexport { default as DrawerItemList } from './views/DrawerItemList';\nexport { default as DrawerToggleButton } from './views/DrawerToggleButton';\nexport { default as DrawerView } from './views/DrawerView';\n\n/**\n * Utilities\n */\nexport { default as DrawerGestureContext } from './utils/DrawerGestureContext';\nexport { default as DrawerProgressContext } from './utils/DrawerProgressContext';\nexport { default as getDrawerStatusFromState } from './utils/getDrawerStatusFromState';\nexport { default as useDrawerProgress } from './utils/useDrawerProgress';\nexport { default as useDrawerStatus } from './utils/useDrawerStatus';\n\n/**\n * Types\n */\nexport type {\n DrawerContentComponentProps,\n DrawerHeaderProps,\n DrawerNavigationEventMap,\n DrawerNavigationOptions,\n DrawerNavigationProp,\n DrawerScreenProps,\n} from './types';\n"]}
@@ -5,21 +5,25 @@ import * as React from 'react';
5
5
  import warnOnce from 'warn-once';
6
6
  import DrawerView from '../views/DrawerView';
7
7
 
8
- function DrawerNavigator({
9
- initialRouteName,
10
- defaultStatus: customDefaultStatus,
11
- backBehavior,
12
- children,
13
- screenListeners,
14
- screenOptions,
15
- // @ts-expect-error: openByDefault is deprecated
16
- openByDefault,
17
- // @ts-expect-error: lazy is deprecated
18
- lazy,
19
- // @ts-expect-error: drawerContentOptions is deprecated
20
- drawerContentOptions,
21
- ...rest
22
- }) {
8
+ function DrawerNavigator(_ref) {
9
+ let {
10
+ initialRouteName,
11
+ defaultStatus: customDefaultStatus,
12
+ backBehavior,
13
+ children,
14
+ screenListeners,
15
+ screenOptions,
16
+ ...restWithDeprecated
17
+ } = _ref;
18
+ const {
19
+ // @ts-expect-error: openByDefault is deprecated
20
+ openByDefault,
21
+ // @ts-expect-error: lazy is deprecated
22
+ lazy,
23
+ // @ts-expect-error: drawerContentOptions is deprecated
24
+ drawerContentOptions,
25
+ ...rest
26
+ } = restWithDeprecated;
23
27
  let defaultScreenOptions = {};
24
28
 
25
29
  if (drawerContentOptions) {
@@ -1 +1 @@
1
- {"version":3,"sources":["createDrawerNavigator.tsx"],"names":["createNavigatorFactory","DrawerRouter","useNavigationBuilder","React","warnOnce","DrawerView","DrawerNavigator","initialRouteName","defaultStatus","customDefaultStatus","backBehavior","children","screenListeners","screenOptions","openByDefault","lazy","drawerContentOptions","rest","defaultScreenOptions","Object","assign","drawerPosition","drawerType","swipeEdgeWidth","edgeWidth","drawerHideStatusBarOnOpen","hideStatusBar","keyboardDismissMode","swipeMinDistance","minSwipeDistance","overlayColor","drawerStatusBarAnimation","statusBarAnimation","gestureHandlerProps","keys","forEach","key","undefined","JSON","stringify","state","descriptors","navigation","NavigationContent"],"mappings":";;AAAA,SACEA,sBADF,EAKEC,YALF,EASEC,oBATF,QAUO,0BAVP;AAWA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAAqB,WAArB;AAOA,OAAOC,UAAP,MAAuB,qBAAvB;;AAWA,SAASC,eAAT,CAAyB;AACvBC,EAAAA,gBADuB;AAEvBC,EAAAA,aAAa,EAAEC,mBAFQ;AAGvBC,EAAAA,YAHuB;AAIvBC,EAAAA,QAJuB;AAKvBC,EAAAA,eALuB;AAMvBC,EAAAA,aANuB;AAOvB;AACAC,EAAAA,aARuB;AASvB;AACAC,EAAAA,IAVuB;AAWvB;AACAC,EAAAA,oBAZuB;AAavB,KAAGC;AAboB,CAAzB,EAcU;AACR,MAAIC,oBAA6C,GAAG,EAApD;;AAEA,MAAIF,oBAAJ,EAA0B;AACxBG,IAAAA,MAAM,CAACC,MAAP,CAAcF,oBAAd,EAAoC;AAClCG,MAAAA,cAAc,EAAEL,oBAAoB,CAACK,cADH;AAElCC,MAAAA,UAAU,EAAEN,oBAAoB,CAACM,UAFC;AAGlCC,MAAAA,cAAc,EAAEP,oBAAoB,CAACQ,SAHH;AAIlCC,MAAAA,yBAAyB,EAAET,oBAAoB,CAACU,aAJd;AAKlCC,MAAAA,mBAAmB,EAAEX,oBAAoB,CAACW,mBALR;AAMlCC,MAAAA,gBAAgB,EAAEZ,oBAAoB,CAACa,gBANL;AAOlCC,MAAAA,YAAY,EAAEd,oBAAoB,CAACc,YAPD;AAQlCC,MAAAA,wBAAwB,EAAEf,oBAAoB,CAACgB,kBARb;AASlCC,MAAAA,mBAAmB,EAAEjB,oBAAoB,CAACiB;AATR,KAApC;AAaEd,IAAAA,MAAM,CAACe,IAAP,CAAYhB,oBAAZ,CADF,CAEEiB,OAFF,CAEWC,GAAD,IAAS;AACjB,UAAIlB,oBAAoB,CAACkB,GAAD,CAApB,KAA8BC,SAAlC,EAA6C;AAC3C;AACA,eAAOnB,oBAAoB,CAACkB,GAAD,CAA3B;AACD;AACF,KAPD;AASAhC,IAAAA,QAAQ,CACNY,oBADM,EAEL,+LAA8LsB,IAAI,CAACC,SAAL,CAC7LrB,oBAD6L,EAE7L,IAF6L,EAG7L,CAH6L,CAI7L,qFANI,CAAR;AAQD;;AAED,MAAI,OAAOH,IAAP,KAAgB,SAApB,EAA+B;AAC7BG,IAAAA,oBAAoB,CAACH,IAArB,GAA4BA,IAA5B;AAEAX,IAAAA,QAAQ,CACN,IADM,EAEL,uKAFK,CAAR;AAID;;AAED,MAAI,OAAOU,aAAP,KAAyB,SAA7B,EAAwC;AACtCV,IAAAA,QAAQ,CACN,IADM,EAEL,0MAFK,CAAR;AAID;;AAED,QAAMI,aAA2B,GAC/BC,mBAAmB,KAAK4B,SAAxB,GACI5B,mBADJ,GAEIK,aAAa,GACb,MADa,GAEb,QALN;AAOA,QAAM;AAAE0B,IAAAA,KAAF;AAASC,IAAAA,WAAT;AAAsBC,IAAAA,UAAtB;AAAkCC,IAAAA;AAAlC,MACJzC,oBAAoB,CAMlBD,YANkB,EAMJ;AACdM,IAAAA,gBADc;AAEdC,IAAAA,aAFc;AAGdE,IAAAA,YAHc;AAIdC,IAAAA,QAJc;AAKdC,IAAAA,eALc;AAMdC,IAAAA,aANc;AAOdK,IAAAA;AAPc,GANI,CADtB;AAiBA,sBACE,oBAAC,iBAAD,qBACE,oBAAC,UAAD,eACMD,IADN;AAEE,IAAA,aAAa,EAAET,aAFjB;AAGE,IAAA,KAAK,EAAEgC,KAHT;AAIE,IAAA,WAAW,EAAEC,WAJf;AAKE,IAAA,UAAU,EAAEC;AALd,KADF,CADF;AAWD;;AAED,eAAe1C,sBAAsB,CAKnCM,eALmC,CAArC","sourcesContent":["import {\n createNavigatorFactory,\n DefaultNavigatorOptions,\n DrawerActionHelpers,\n DrawerNavigationState,\n DrawerRouter,\n DrawerRouterOptions,\n DrawerStatus,\n ParamListBase,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\n\nimport type {\n DrawerNavigationConfig,\n DrawerNavigationEventMap,\n DrawerNavigationOptions,\n} from '../types';\nimport DrawerView from '../views/DrawerView';\n\ntype Props = DefaultNavigatorOptions<\n ParamListBase,\n DrawerNavigationState<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap\n> &\n DrawerRouterOptions &\n DrawerNavigationConfig;\n\nfunction DrawerNavigator({\n initialRouteName,\n defaultStatus: customDefaultStatus,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n // @ts-expect-error: openByDefault is deprecated\n openByDefault,\n // @ts-expect-error: lazy is deprecated\n lazy,\n // @ts-expect-error: drawerContentOptions is deprecated\n drawerContentOptions,\n ...rest\n}: Props) {\n let defaultScreenOptions: DrawerNavigationOptions = {};\n\n if (drawerContentOptions) {\n Object.assign(defaultScreenOptions, {\n drawerPosition: drawerContentOptions.drawerPosition,\n drawerType: drawerContentOptions.drawerType,\n swipeEdgeWidth: drawerContentOptions.edgeWidth,\n drawerHideStatusBarOnOpen: drawerContentOptions.hideStatusBar,\n keyboardDismissMode: drawerContentOptions.keyboardDismissMode,\n swipeMinDistance: drawerContentOptions.minSwipeDistance,\n overlayColor: drawerContentOptions.overlayColor,\n drawerStatusBarAnimation: drawerContentOptions.statusBarAnimation,\n gestureHandlerProps: drawerContentOptions.gestureHandlerProps,\n });\n\n (\n Object.keys(defaultScreenOptions) as (keyof DrawerNavigationOptions)[]\n ).forEach((key) => {\n if (defaultScreenOptions[key] === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete defaultScreenOptions[key];\n }\n });\n\n warnOnce(\n drawerContentOptions,\n `Drawer Navigator: 'drawerContentOptions' is deprecated. Migrate the options to 'screenOptions' instead.\\n\\nPlace the following in 'screenOptions' in your code to keep current behavior:\\n\\n${JSON.stringify(\n defaultScreenOptions,\n null,\n 2\n )}\\n\\nSee https://reactnavigation.org/docs/drawer-navigator#options for more details.`\n );\n }\n\n if (typeof lazy === 'boolean') {\n defaultScreenOptions.lazy = lazy;\n\n warnOnce(\n true,\n `Drawer Navigator: 'lazy' in props is deprecated. Move it to 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/drawer-navigator/#lazy for more details.`\n );\n }\n\n if (typeof openByDefault === 'boolean') {\n warnOnce(\n true,\n `Drawer Navigator: 'openByDefault' is deprecated. Use 'defaultStatus' and set it to 'open' or 'closed' instead.\\n\\nSee https://reactnavigation.org/docs/drawer-navigator/#defaultstatus for more details.`\n );\n }\n\n const defaultStatus: DrawerStatus =\n customDefaultStatus !== undefined\n ? customDefaultStatus\n : openByDefault\n ? 'open'\n : 'closed';\n\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n DrawerNavigationState<ParamListBase>,\n DrawerRouterOptions,\n DrawerActionHelpers<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap\n >(DrawerRouter, {\n initialRouteName,\n defaultStatus,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions,\n });\n\n return (\n <NavigationContent>\n <DrawerView\n {...rest}\n defaultStatus={defaultStatus}\n state={state}\n descriptors={descriptors}\n navigation={navigation}\n />\n </NavigationContent>\n );\n}\n\nexport default createNavigatorFactory<\n DrawerNavigationState<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap,\n typeof DrawerNavigator\n>(DrawerNavigator);\n"]}
1
+ {"version":3,"sources":["createDrawerNavigator.tsx"],"names":["createNavigatorFactory","DrawerRouter","useNavigationBuilder","React","warnOnce","DrawerView","DrawerNavigator","initialRouteName","defaultStatus","customDefaultStatus","backBehavior","children","screenListeners","screenOptions","restWithDeprecated","openByDefault","lazy","drawerContentOptions","rest","defaultScreenOptions","Object","assign","drawerPosition","drawerType","swipeEdgeWidth","edgeWidth","drawerHideStatusBarOnOpen","hideStatusBar","keyboardDismissMode","swipeMinDistance","minSwipeDistance","overlayColor","drawerStatusBarAnimation","statusBarAnimation","gestureHandlerProps","keys","forEach","key","undefined","JSON","stringify","state","descriptors","navigation","NavigationContent"],"mappings":"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","sourcesContent":["import {\n createNavigatorFactory,\n DefaultNavigatorOptions,\n DrawerActionHelpers,\n DrawerNavigationState,\n DrawerRouter,\n DrawerRouterOptions,\n DrawerStatus,\n ParamListBase,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\n\nimport type {\n DrawerNavigationConfig,\n DrawerNavigationEventMap,\n DrawerNavigationOptions,\n} from '../types';\nimport DrawerView from '../views/DrawerView';\n\ntype Props = DefaultNavigatorOptions<\n ParamListBase,\n DrawerNavigationState<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap\n> &\n DrawerRouterOptions &\n DrawerNavigationConfig;\n\nfunction DrawerNavigator({\n initialRouteName,\n defaultStatus: customDefaultStatus,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n ...restWithDeprecated\n}: Props) {\n const {\n // @ts-expect-error: openByDefault is deprecated\n openByDefault,\n // @ts-expect-error: lazy is deprecated\n lazy,\n // @ts-expect-error: drawerContentOptions is deprecated\n drawerContentOptions,\n ...rest\n } = restWithDeprecated;\n\n let defaultScreenOptions: DrawerNavigationOptions = {};\n\n if (drawerContentOptions) {\n Object.assign(defaultScreenOptions, {\n drawerPosition: drawerContentOptions.drawerPosition,\n drawerType: drawerContentOptions.drawerType,\n swipeEdgeWidth: drawerContentOptions.edgeWidth,\n drawerHideStatusBarOnOpen: drawerContentOptions.hideStatusBar,\n keyboardDismissMode: drawerContentOptions.keyboardDismissMode,\n swipeMinDistance: drawerContentOptions.minSwipeDistance,\n overlayColor: drawerContentOptions.overlayColor,\n drawerStatusBarAnimation: drawerContentOptions.statusBarAnimation,\n gestureHandlerProps: drawerContentOptions.gestureHandlerProps,\n });\n\n (\n Object.keys(defaultScreenOptions) as (keyof DrawerNavigationOptions)[]\n ).forEach((key) => {\n if (defaultScreenOptions[key] === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete defaultScreenOptions[key];\n }\n });\n\n warnOnce(\n drawerContentOptions,\n `Drawer Navigator: 'drawerContentOptions' is deprecated. Migrate the options to 'screenOptions' instead.\\n\\nPlace the following in 'screenOptions' in your code to keep current behavior:\\n\\n${JSON.stringify(\n defaultScreenOptions,\n null,\n 2\n )}\\n\\nSee https://reactnavigation.org/docs/drawer-navigator#options for more details.`\n );\n }\n\n if (typeof lazy === 'boolean') {\n defaultScreenOptions.lazy = lazy;\n\n warnOnce(\n true,\n `Drawer Navigator: 'lazy' in props is deprecated. Move it to 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/drawer-navigator/#lazy for more details.`\n );\n }\n\n if (typeof openByDefault === 'boolean') {\n warnOnce(\n true,\n `Drawer Navigator: 'openByDefault' is deprecated. Use 'defaultStatus' and set it to 'open' or 'closed' instead.\\n\\nSee https://reactnavigation.org/docs/drawer-navigator/#defaultstatus for more details.`\n );\n }\n\n const defaultStatus: DrawerStatus =\n customDefaultStatus !== undefined\n ? customDefaultStatus\n : openByDefault\n ? 'open'\n : 'closed';\n\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n DrawerNavigationState<ParamListBase>,\n DrawerRouterOptions,\n DrawerActionHelpers<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap\n >(DrawerRouter, {\n initialRouteName,\n defaultStatus,\n backBehavior,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions,\n });\n\n return (\n <NavigationContent>\n <DrawerView\n {...rest}\n defaultStatus={defaultStatus}\n state={state}\n descriptors={descriptors}\n navigation={navigation}\n />\n </NavigationContent>\n );\n}\n\nexport default createNavigatorFactory<\n DrawerNavigationState<ParamListBase>,\n DrawerNavigationOptions,\n DrawerNavigationEventMap,\n typeof DrawerNavigator\n>(DrawerNavigator);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerStatusContext.tsx"],"names":["React","DrawerStatusContext","createContext","undefined"],"mappings":"AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,MAAMC,mBAAmB,gBACvBD,KAAK,CAACE,aAAN,CAA8CC,SAA9C,CADF;AAGA,eAAeF,mBAAf","sourcesContent":["import type { DrawerStatus } from '@react-navigation/native';\nimport * as React from 'react';\n\nconst DrawerStatusContext =\n React.createContext<DrawerStatus | undefined>(undefined);\n\nexport default DrawerStatusContext;\n"]}
1
+ {"version":3,"sources":["DrawerStatusContext.tsx"],"names":["React","DrawerStatusContext","createContext","undefined"],"mappings":"AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,MAAMC,mBAAmB,gBAAGD,KAAK,CAACE,aAAN,CAC1BC,SAD0B,CAA5B;AAIA,eAAeF,mBAAf","sourcesContent":["import type { DrawerStatus } from '@react-navigation/native';\nimport * as React from 'react';\n\nconst DrawerStatusContext = React.createContext<DrawerStatus | undefined>(\n undefined\n);\n\nexport default DrawerStatusContext;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["useDrawerStatus.tsx"],"names":["React","DrawerStatusContext","useDrawerStatus","drawerStatus","useContext","undefined","Error"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,mBAAP,MAAgC,uBAAhC;AAEA;AACA;AACA;AACA;;AACA,eAAe,SAASC,eAAT,GAA2B;AACxC,QAAMC,YAAY,GAAGH,KAAK,CAACI,UAAN,CAAiBH,mBAAjB,CAArB;;AAEA,MAAIE,YAAY,KAAKE,SAArB,EAAgC;AAC9B,UAAM,IAAIC,KAAJ,CACJ,sEADI,CAAN;AAGD;;AAED,SAAOH,YAAP;AACD","sourcesContent":["import * as React from 'react';\n\nimport DrawerStatusContext from './DrawerStatusContext';\n\n/**\n * Hook to detect if the drawer's status in a parent navigator.\n * Returns 'open' if the drawer is open, 'closed' if the drawer is closed.\n */\nexport default function useDrawerStatus() {\n const drawerStatus = React.useContext(DrawerStatusContext);\n\n if (drawerStatus === undefined) {\n throw new Error(\n \"Couldn't find a drawer. Is your component inside a drawer navigator?\"\n );\n }\n\n return drawerStatus;\n}\n"]}
1
+ {"version":3,"sources":["useDrawerStatus.tsx"],"names":["React","DrawerStatusContext","useDrawerStatus","drawerStatus","useContext","undefined","Error"],"mappings":"AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,mBAAP,MAAgC,uBAAhC;AAEA;AACA;AACA;AACA;;AACA,eAAe,SAASC,eAAT,GAAyC;AACtD,QAAMC,YAAY,GAAGH,KAAK,CAACI,UAAN,CAAiBH,mBAAjB,CAArB;;AAEA,MAAIE,YAAY,KAAKE,SAArB,EAAgC;AAC9B,UAAM,IAAIC,KAAJ,CACJ,sEADI,CAAN;AAGD;;AAED,SAAOH,YAAP;AACD","sourcesContent":["import type { DrawerStatus } from '@react-navigation/native';\nimport * as React from 'react';\n\nimport DrawerStatusContext from './DrawerStatusContext';\n\n/**\n * Hook to detect if the drawer's status in a parent navigator.\n * Returns 'open' if the drawer is open, 'closed' if the drawer is closed.\n */\nexport default function useDrawerStatus(): DrawerStatus {\n const drawerStatus = React.useContext(DrawerStatusContext);\n\n if (drawerStatus === undefined) {\n throw new Error(\n \"Couldn't find a drawer. Is your component inside a drawer navigator?\"\n );\n }\n\n return drawerStatus;\n}\n"]}
@@ -3,11 +3,12 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
3
3
  import * as React from 'react';
4
4
  import DrawerContentScrollView from './DrawerContentScrollView';
5
5
  import DrawerItemList from './DrawerItemList';
6
- export default function DrawerContent({
7
- descriptors,
8
- state,
9
- ...rest
10
- }) {
6
+ export default function DrawerContent(_ref) {
7
+ let {
8
+ descriptors,
9
+ state,
10
+ ...rest
11
+ } = _ref;
11
12
  const focusedRoute = state.routes[state.index];
12
13
  const focusedDescriptor = descriptors[focusedRoute.key];
13
14
  const focusedOptions = focusedDescriptor.options;
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerContent.tsx"],"names":["React","DrawerContentScrollView","DrawerItemList","DrawerContent","descriptors","state","rest","focusedRoute","routes","index","focusedDescriptor","key","focusedOptions","options","drawerContentStyle","drawerContentContainerStyle"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,uBAAP,MAAoC,2BAApC;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,eAAe,SAASC,aAAT,CAAuB;AACpCC,EAAAA,WADoC;AAEpCC,EAAAA,KAFoC;AAGpC,KAAGC;AAHiC,CAAvB,EAIiB;AAC9B,QAAMC,YAAY,GAAGF,KAAK,CAACG,MAAN,CAAaH,KAAK,CAACI,KAAnB,CAArB;AACA,QAAMC,iBAAiB,GAAGN,WAAW,CAACG,YAAY,CAACI,GAAd,CAArC;AACA,QAAMC,cAAc,GAAGF,iBAAiB,CAACG,OAAzC;AAEA,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsDH,cAA5D;AAEA,sBACE,oBAAC,uBAAD,eACMN,IADN;AAEE,IAAA,qBAAqB,EAAES,2BAFzB;AAGE,IAAA,KAAK,EAAED;AAHT,mBAKE,oBAAC,cAAD;AAAgB,IAAA,WAAW,EAAEV,WAA7B;AAA0C,IAAA,KAAK,EAAEC;AAAjD,KAA4DC,IAA5D,EALF,CADF;AASD","sourcesContent":["import * as React from 'react';\n\nimport type { DrawerContentComponentProps } from '../types';\nimport DrawerContentScrollView from './DrawerContentScrollView';\nimport DrawerItemList from './DrawerItemList';\n\nexport default function DrawerContent({\n descriptors,\n state,\n ...rest\n}: DrawerContentComponentProps) {\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n\n const { drawerContentStyle, drawerContentContainerStyle } = focusedOptions;\n\n return (\n <DrawerContentScrollView\n {...rest}\n contentContainerStyle={drawerContentContainerStyle}\n style={drawerContentStyle}\n >\n <DrawerItemList descriptors={descriptors} state={state} {...rest} />\n </DrawerContentScrollView>\n );\n}\n"]}
1
+ {"version":3,"sources":["DrawerContent.tsx"],"names":["React","DrawerContentScrollView","DrawerItemList","DrawerContent","descriptors","state","rest","focusedRoute","routes","index","focusedDescriptor","key","focusedOptions","options","drawerContentStyle","drawerContentContainerStyle"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,uBAAP,MAAoC,2BAApC;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,eAAe,SAASC,aAAT,OAIiB;AAAA,MAJM;AACpCC,IAAAA,WADoC;AAEpCC,IAAAA,KAFoC;AAGpC,OAAGC;AAHiC,GAIN;AAC9B,QAAMC,YAAY,GAAGF,KAAK,CAACG,MAAN,CAAaH,KAAK,CAACI,KAAnB,CAArB;AACA,QAAMC,iBAAiB,GAAGN,WAAW,CAACG,YAAY,CAACI,GAAd,CAArC;AACA,QAAMC,cAAc,GAAGF,iBAAiB,CAACG,OAAzC;AAEA,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAAsDH,cAA5D;AAEA,sBACE,oBAAC,uBAAD,eACMN,IADN;AAEE,IAAA,qBAAqB,EAAES,2BAFzB;AAGE,IAAA,KAAK,EAAED;AAHT,mBAKE,oBAAC,cAAD;AAAgB,IAAA,WAAW,EAAEV,WAA7B;AAA0C,IAAA,KAAK,EAAEC;AAAjD,KAA4DC,IAA5D,EALF,CADF;AASD","sourcesContent":["import * as React from 'react';\n\nimport type { DrawerContentComponentProps } from '../types';\nimport DrawerContentScrollView from './DrawerContentScrollView';\nimport DrawerItemList from './DrawerItemList';\n\nexport default function DrawerContent({\n descriptors,\n state,\n ...rest\n}: DrawerContentComponentProps) {\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n\n const { drawerContentStyle, drawerContentContainerStyle } = focusedOptions;\n\n return (\n <DrawerContentScrollView\n {...rest}\n contentContainerStyle={drawerContentContainerStyle}\n style={drawerContentStyle}\n >\n <DrawerItemList descriptors={descriptors} state={state} {...rest} />\n </DrawerContentScrollView>\n );\n}\n"]}
@@ -5,12 +5,13 @@ import { I18nManager, ScrollView, StyleSheet } from 'react-native';
5
5
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
6
6
  import DrawerPositionContext from '../utils/DrawerPositionContext';
7
7
 
8
- function DrawerContentScrollView({
9
- contentContainerStyle,
10
- style,
11
- children,
12
- ...rest
13
- }, ref) {
8
+ function DrawerContentScrollView(_ref, ref) {
9
+ let {
10
+ contentContainerStyle,
11
+ style,
12
+ children,
13
+ ...rest
14
+ } = _ref;
14
15
  const drawerPosition = React.useContext(DrawerPositionContext);
15
16
  const insets = useSafeAreaInsets();
16
17
  const isRight = I18nManager.isRTL ? drawerPosition === 'left' : drawerPosition === 'right';
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerContentScrollView.tsx"],"names":["React","I18nManager","ScrollView","StyleSheet","useSafeAreaInsets","DrawerPositionContext","DrawerContentScrollView","contentContainerStyle","style","children","rest","ref","drawerPosition","useContext","insets","isRight","isRTL","paddingTop","top","paddingStart","left","paddingEnd","right","styles","container","forwardRef","create","flex"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,WADF,EAEEC,UAFF,EAIEC,UAJF,QAKO,cALP;AAMA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,OAAOC,qBAAP,MAAkC,gCAAlC;;AAMA,SAASC,uBAAT,CACE;AAAEC,EAAAA,qBAAF;AAAyBC,EAAAA,KAAzB;AAAgCC,EAAAA,QAAhC;AAA0C,KAAGC;AAA7C,CADF,EAEEC,GAFF,EAGE;AACA,QAAMC,cAAc,GAAGZ,KAAK,CAACa,UAAN,CAAiBR,qBAAjB,CAAvB;AACA,QAAMS,MAAM,GAAGV,iBAAiB,EAAhC;AAEA,QAAMW,OAAO,GAAGd,WAAW,CAACe,KAAZ,GACZJ,cAAc,KAAK,MADP,GAEZA,cAAc,KAAK,OAFvB;AAIA,sBACE,oBAAC,UAAD,eACMF,IADN;AAEE,IAAA,GAAG,EAAEC,GAFP;AAGE,IAAA,qBAAqB,EAAE,CACrB;AACEM,MAAAA,UAAU,EAAEH,MAAM,CAACI,GAAP,GAAa,CAD3B;AAEEC,MAAAA,YAAY,EAAE,CAACJ,OAAD,GAAWD,MAAM,CAACM,IAAlB,GAAyB,CAFzC;AAGEC,MAAAA,UAAU,EAAEN,OAAO,GAAGD,MAAM,CAACQ,KAAV,GAAkB;AAHvC,KADqB,EAMrBf,qBANqB,CAHzB;AAWE,IAAA,KAAK,EAAE,CAACgB,MAAM,CAACC,SAAR,EAAmBhB,KAAnB;AAXT,MAaGC,QAbH,CADF;AAiBD;;AAED,4BAAeT,KAAK,CAACyB,UAAN,CAAiBnB,uBAAjB,CAAf;AAEA,MAAMiB,MAAM,GAAGpB,UAAU,CAACuB,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE;AADG;AADoB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n I18nManager,\n ScrollView,\n ScrollViewProps,\n StyleSheet,\n} from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport DrawerPositionContext from '../utils/DrawerPositionContext';\n\ntype Props = ScrollViewProps & {\n children: React.ReactNode;\n};\n\nfunction DrawerContentScrollView(\n { contentContainerStyle, style, children, ...rest }: Props,\n ref?: React.Ref<ScrollView>\n) {\n const drawerPosition = React.useContext(DrawerPositionContext);\n const insets = useSafeAreaInsets();\n\n const isRight = I18nManager.isRTL\n ? drawerPosition === 'left'\n : drawerPosition === 'right';\n\n return (\n <ScrollView\n {...rest}\n ref={ref}\n contentContainerStyle={[\n {\n paddingTop: insets.top + 4,\n paddingStart: !isRight ? insets.left : 0,\n paddingEnd: isRight ? insets.right : 0,\n },\n contentContainerStyle,\n ]}\n style={[styles.container, style]}\n >\n {children}\n </ScrollView>\n );\n}\n\nexport default React.forwardRef(DrawerContentScrollView);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"]}
1
+ {"version":3,"sources":["DrawerContentScrollView.tsx"],"names":["React","I18nManager","ScrollView","StyleSheet","useSafeAreaInsets","DrawerPositionContext","DrawerContentScrollView","ref","contentContainerStyle","style","children","rest","drawerPosition","useContext","insets","isRight","isRTL","paddingTop","top","paddingStart","left","paddingEnd","right","styles","container","forwardRef","create","flex"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,WADF,EAEEC,UAFF,EAIEC,UAJF,QAKO,cALP;AAMA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,OAAOC,qBAAP,MAAkC,gCAAlC;;AAMA,SAASC,uBAAT,OAEEC,GAFF,EAGE;AAAA,MAFA;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA,KAAzB;AAAgCC,IAAAA,QAAhC;AAA0C,OAAGC;AAA7C,GAEA;AACA,QAAMC,cAAc,GAAGZ,KAAK,CAACa,UAAN,CAAiBR,qBAAjB,CAAvB;AACA,QAAMS,MAAM,GAAGV,iBAAiB,EAAhC;AAEA,QAAMW,OAAO,GAAGd,WAAW,CAACe,KAAZ,GACZJ,cAAc,KAAK,MADP,GAEZA,cAAc,KAAK,OAFvB;AAIA,sBACE,oBAAC,UAAD,eACMD,IADN;AAEE,IAAA,GAAG,EAAEJ,GAFP;AAGE,IAAA,qBAAqB,EAAE,CACrB;AACEU,MAAAA,UAAU,EAAEH,MAAM,CAACI,GAAP,GAAa,CAD3B;AAEEC,MAAAA,YAAY,EAAE,CAACJ,OAAD,GAAWD,MAAM,CAACM,IAAlB,GAAyB,CAFzC;AAGEC,MAAAA,UAAU,EAAEN,OAAO,GAAGD,MAAM,CAACQ,KAAV,GAAkB;AAHvC,KADqB,EAMrBd,qBANqB,CAHzB;AAWE,IAAA,KAAK,EAAE,CAACe,MAAM,CAACC,SAAR,EAAmBf,KAAnB;AAXT,MAaGC,QAbH,CADF;AAiBD;;AAED,4BAAeV,KAAK,CAACyB,UAAN,CAAiBnB,uBAAjB,CAAf;AAEA,MAAMiB,MAAM,GAAGpB,UAAU,CAACuB,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE;AADG;AADoB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n I18nManager,\n ScrollView,\n ScrollViewProps,\n StyleSheet,\n} from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport DrawerPositionContext from '../utils/DrawerPositionContext';\n\ntype Props = ScrollViewProps & {\n children: React.ReactNode;\n};\n\nfunction DrawerContentScrollView(\n { contentContainerStyle, style, children, ...rest }: Props,\n ref?: React.Ref<ScrollView>\n) {\n const drawerPosition = React.useContext(DrawerPositionContext);\n const insets = useSafeAreaInsets();\n\n const isRight = I18nManager.isRTL\n ? drawerPosition === 'left'\n : drawerPosition === 'right';\n\n return (\n <ScrollView\n {...rest}\n ref={ref}\n contentContainerStyle={[\n {\n paddingTop: insets.top + 4,\n paddingStart: !isRight ? insets.left : 0,\n paddingEnd: isRight ? insets.right : 0,\n },\n contentContainerStyle,\n ]}\n style={[styles.container, style]}\n >\n {children}\n </ScrollView>\n );\n}\n\nexport default React.forwardRef(DrawerContentScrollView);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n"]}
@@ -6,15 +6,17 @@ import Color from 'color';
6
6
  import * as React from 'react';
7
7
  import { Platform, StyleSheet, Text, View } from 'react-native';
8
8
 
9
- const LinkPressable = ({
10
- children,
11
- style,
12
- onPress,
13
- onLongPress,
14
- to,
15
- accessibilityRole,
16
- ...rest
17
- }) => {
9
+ const LinkPressable = _ref => {
10
+ let {
11
+ children,
12
+ style,
13
+ onPress,
14
+ onLongPress,
15
+ to,
16
+ accessibilityRole,
17
+ ...rest
18
+ } = _ref;
19
+
18
20
  if (Platform.OS === 'web' && to) {
19
21
  // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.
20
22
  // We need to use `onClick` to be able to prevent default browser handling of links.
@@ -22,7 +24,8 @@ const LinkPressable = ({
22
24
  to: to,
23
25
  style: [styles.button, style],
24
26
  onPress: e => {
25
- if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && (e.button == null || e.button === 0) // ignore everything but left clicks
27
+ if (!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && ( // ignore clicks with modifier keys
28
+ e.button == null || e.button === 0) // ignore everything but left clicks
26
29
  ) {
27
30
  e.preventDefault();
28
31
  onPress === null || onPress === void 0 ? void 0 : onPress(e);
@@ -54,6 +57,7 @@ export default function DrawerItem(props) {
54
57
  labelStyle,
55
58
  to,
56
59
  focused = false,
60
+ allowFontScaling,
57
61
  activeTintColor = colors.primary,
58
62
  inactiveTintColor = Color(colors.text).alpha(0.68).rgb().string(),
59
63
  activeBackgroundColor = Color(activeTintColor).alpha(0.12).rgb().string(),
@@ -100,6 +104,7 @@ export default function DrawerItem(props) {
100
104
  }]
101
105
  }, typeof label === 'string' ? /*#__PURE__*/React.createElement(Text, {
102
106
  numberOfLines: 1,
107
+ allowFontScaling: allowFontScaling,
103
108
  style: [{
104
109
  color,
105
110
  fontWeight: '500'
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerItem.tsx"],"names":["PlatformPressable","Link","useTheme","Color","React","Platform","StyleSheet","Text","View","LinkPressable","children","style","onPress","onLongPress","to","accessibilityRole","rest","OS","styles","button","e","metaKey","altKey","ctrlKey","shiftKey","preventDefault","undefined","DrawerItem","props","colors","icon","label","labelStyle","focused","activeTintColor","primary","inactiveTintColor","text","alpha","rgb","string","activeBackgroundColor","inactiveBackgroundColor","pressColor","pressOpacity","borderRadius","flatten","color","backgroundColor","iconNode","size","container","wrapper","selected","marginLeft","marginVertical","fontWeight","create","marginHorizontal","overflow","flexDirection","alignItems","padding","marginRight","flex","display"],"mappings":"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","sourcesContent":["import { PlatformPressable } from '@react-navigation/elements';\nimport { Link, useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport {\n Platform,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\ntype Props = {\n /**\n * The label text of the item.\n */\n label:\n | string\n | ((props: { focused: boolean; color: string }) => React.ReactNode);\n /**\n * Icon to display for the `DrawerItem`.\n */\n icon?: (props: {\n focused: boolean;\n size: number;\n color: string;\n }) => React.ReactNode;\n /**\n * URL to use for the link to the tab.\n */\n to?: string;\n /**\n * Whether to highlight the drawer item as active.\n */\n focused?: boolean;\n /**\n * Function to execute on press.\n */\n onPress: () => void;\n /**\n * Color for the icon and label when the item is active.\n */\n activeTintColor?: string;\n /**\n * Color for the icon and label when the item is inactive.\n */\n inactiveTintColor?: string;\n /**\n * Background color for item when its active.\n */\n activeBackgroundColor?: string;\n /**\n * Background color for item when its inactive.\n */\n inactiveBackgroundColor?: string;\n /**\n * Color of the touchable effect on press.\n * Only supported on Android.\n *\n * @platform android\n */\n pressColor?: string;\n /**\n * Opacity of the touchable effect on press.\n * Only supported on iOS.\n *\n * @platform ios\n */\n pressOpacity?: number;\n /**\n * Style object for the label element.\n */\n labelStyle?: StyleProp<TextStyle>;\n /**\n * Style object for the wrapper element.\n */\n style?: StyleProp<ViewStyle>;\n};\n\nconst LinkPressable = ({\n children,\n style,\n onPress,\n onLongPress,\n to,\n accessibilityRole,\n ...rest\n}: Omit<React.ComponentProps<typeof PlatformPressable>, 'style'> & {\n style: StyleProp<ViewStyle>;\n} & {\n to?: string;\n children: React.ReactNode;\n onPress?: () => void;\n}) => {\n if (Platform.OS === 'web' && to) {\n // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.\n // We need to use `onClick` to be able to prevent default browser handling of links.\n return (\n <Link\n {...rest}\n to={to}\n style={[styles.button, style]}\n onPress={(e: any) => {\n if (\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n (e.button == null || e.button === 0) // ignore everything but left clicks\n ) {\n e.preventDefault();\n onPress?.(e);\n }\n }}\n onLongPress={onLongPress ?? undefined}\n >\n {children}\n </Link>\n );\n } else {\n return (\n <PlatformPressable\n {...rest}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <View style={style}>{children}</View>\n </PlatformPressable>\n );\n }\n};\n\n/**\n * A component used to show an action item with an icon and a label in a navigation drawer.\n */\nexport default function DrawerItem(props: Props) {\n const { colors } = useTheme();\n\n const {\n icon,\n label,\n labelStyle,\n to,\n focused = false,\n activeTintColor = colors.primary,\n inactiveTintColor = Color(colors.text).alpha(0.68).rgb().string(),\n activeBackgroundColor = Color(activeTintColor).alpha(0.12).rgb().string(),\n inactiveBackgroundColor = 'transparent',\n style,\n onPress,\n pressColor,\n pressOpacity,\n ...rest\n } = props;\n\n const { borderRadius = 4 } = StyleSheet.flatten(style || {});\n const color = focused ? activeTintColor : inactiveTintColor;\n const backgroundColor = focused\n ? activeBackgroundColor\n : inactiveBackgroundColor;\n\n const iconNode = icon ? icon({ size: 24, focused, color }) : null;\n\n return (\n <View\n collapsable={false}\n {...rest}\n style={[styles.container, { borderRadius, backgroundColor }, style]}\n >\n <LinkPressable\n onPress={onPress}\n style={[styles.wrapper, { borderRadius }]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: focused }}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n to={to}\n >\n <React.Fragment>\n {iconNode}\n <View\n style={[\n styles.label,\n { marginLeft: iconNode ? 32 : 0, marginVertical: 5 },\n ]}\n >\n {typeof label === 'string' ? (\n <Text\n numberOfLines={1}\n style={[\n {\n color,\n fontWeight: '500',\n },\n labelStyle,\n ]}\n >\n {label}\n </Text>\n ) : (\n label({ color, focused })\n )}\n </View>\n </React.Fragment>\n </LinkPressable>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n marginHorizontal: 10,\n marginVertical: 4,\n overflow: 'hidden',\n },\n wrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n label: {\n marginRight: 32,\n flex: 1,\n },\n button: {\n display: 'flex',\n },\n});\n"]}
1
+ {"version":3,"sources":["DrawerItem.tsx"],"names":["PlatformPressable","Link","useTheme","Color","React","Platform","StyleSheet","Text","View","LinkPressable","children","style","onPress","onLongPress","to","accessibilityRole","rest","OS","styles","button","e","metaKey","altKey","ctrlKey","shiftKey","preventDefault","undefined","DrawerItem","props","colors","icon","label","labelStyle","focused","allowFontScaling","activeTintColor","primary","inactiveTintColor","text","alpha","rgb","string","activeBackgroundColor","inactiveBackgroundColor","pressColor","pressOpacity","borderRadius","flatten","color","backgroundColor","iconNode","size","container","wrapper","selected","marginLeft","marginVertical","fontWeight","create","marginHorizontal","overflow","flexDirection","alignItems","padding","marginRight","flex","display"],"mappings":"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","sourcesContent":["import { PlatformPressable } from '@react-navigation/elements';\nimport { Link, useTheme } from '@react-navigation/native';\nimport Color from 'color';\nimport * as React from 'react';\nimport {\n Platform,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\ntype Props = {\n /**\n * The label text of the item.\n */\n label:\n | string\n | ((props: { focused: boolean; color: string }) => React.ReactNode);\n /**\n * Icon to display for the `DrawerItem`.\n */\n icon?: (props: {\n focused: boolean;\n size: number;\n color: string;\n }) => React.ReactNode;\n /**\n * URL to use for the link to the tab.\n */\n to?: string;\n /**\n * Whether to highlight the drawer item as active.\n */\n focused?: boolean;\n /**\n * Function to execute on press.\n */\n onPress: () => void;\n /**\n * Color for the icon and label when the item is active.\n */\n activeTintColor?: string;\n /**\n * Color for the icon and label when the item is inactive.\n */\n inactiveTintColor?: string;\n /**\n * Background color for item when its active.\n */\n activeBackgroundColor?: string;\n /**\n * Background color for item when its inactive.\n */\n inactiveBackgroundColor?: string;\n /**\n * Color of the touchable effect on press.\n * Only supported on Android.\n *\n * @platform android\n */\n pressColor?: string;\n /**\n * Opacity of the touchable effect on press.\n * Only supported on iOS.\n *\n * @platform ios\n */\n pressOpacity?: number;\n /**\n * Style object for the label element.\n */\n labelStyle?: StyleProp<TextStyle>;\n /**\n * Style object for the wrapper element.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * Whether label font should scale to respect Text Size accessibility settings.\n */\n allowFontScaling?: boolean;\n};\n\nconst LinkPressable = ({\n children,\n style,\n onPress,\n onLongPress,\n to,\n accessibilityRole,\n ...rest\n}: Omit<React.ComponentProps<typeof PlatformPressable>, 'style'> & {\n style: StyleProp<ViewStyle>;\n} & {\n to?: string;\n children: React.ReactNode;\n onPress?: () => void;\n}) => {\n if (Platform.OS === 'web' && to) {\n // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.\n // We need to use `onClick` to be able to prevent default browser handling of links.\n return (\n <Link\n {...rest}\n to={to}\n style={[styles.button, style]}\n onPress={(e: any) => {\n if (\n !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && // ignore clicks with modifier keys\n (e.button == null || e.button === 0) // ignore everything but left clicks\n ) {\n e.preventDefault();\n onPress?.(e);\n }\n }}\n onLongPress={onLongPress ?? undefined}\n >\n {children}\n </Link>\n );\n } else {\n return (\n <PlatformPressable\n {...rest}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <View style={style}>{children}</View>\n </PlatformPressable>\n );\n }\n};\n\n/**\n * A component used to show an action item with an icon and a label in a navigation drawer.\n */\nexport default function DrawerItem(props: Props) {\n const { colors } = useTheme();\n\n const {\n icon,\n label,\n labelStyle,\n to,\n focused = false,\n allowFontScaling,\n activeTintColor = colors.primary,\n inactiveTintColor = Color(colors.text).alpha(0.68).rgb().string(),\n activeBackgroundColor = Color(activeTintColor).alpha(0.12).rgb().string(),\n inactiveBackgroundColor = 'transparent',\n style,\n onPress,\n pressColor,\n pressOpacity,\n ...rest\n } = props;\n\n const { borderRadius = 4 } = StyleSheet.flatten(style || {});\n const color = focused ? activeTintColor : inactiveTintColor;\n const backgroundColor = focused\n ? activeBackgroundColor\n : inactiveBackgroundColor;\n\n const iconNode = icon ? icon({ size: 24, focused, color }) : null;\n\n return (\n <View\n collapsable={false}\n {...rest}\n style={[styles.container, { borderRadius, backgroundColor }, style]}\n >\n <LinkPressable\n onPress={onPress}\n style={[styles.wrapper, { borderRadius }]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: focused }}\n pressColor={pressColor}\n pressOpacity={pressOpacity}\n to={to}\n >\n <React.Fragment>\n {iconNode}\n <View\n style={[\n styles.label,\n { marginLeft: iconNode ? 32 : 0, marginVertical: 5 },\n ]}\n >\n {typeof label === 'string' ? (\n <Text\n numberOfLines={1}\n allowFontScaling={allowFontScaling}\n style={[\n {\n color,\n fontWeight: '500',\n },\n labelStyle,\n ]}\n >\n {label}\n </Text>\n ) : (\n label({ color, focused })\n )}\n </View>\n </React.Fragment>\n </LinkPressable>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n marginHorizontal: 10,\n marginVertical: 4,\n overflow: 'hidden',\n },\n wrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n label: {\n marginRight: 32,\n flex: 1,\n },\n button: {\n display: 'flex',\n },\n});\n"]}
@@ -5,11 +5,12 @@ import DrawerItem from './DrawerItem';
5
5
  /**
6
6
  * Component that renders the navigation list in the drawer.
7
7
  */
8
- export default function DrawerItemList({
9
- state,
10
- navigation,
11
- descriptors
12
- }) {
8
+ export default function DrawerItemList(_ref) {
9
+ let {
10
+ state,
11
+ navigation,
12
+ descriptors
13
+ } = _ref;
13
14
  const buildLink = useLinkBuilder();
14
15
  const focusedRoute = state.routes[state.index];
15
16
  const focusedDescriptor = descriptors[focusedRoute.key];
@@ -22,12 +23,31 @@ export default function DrawerItemList({
22
23
  } = focusedOptions;
23
24
  return state.routes.map((route, i) => {
24
25
  const focused = i === state.index;
26
+
27
+ const onPress = () => {
28
+ const event = navigation.emit({
29
+ type: 'drawerItemPress',
30
+ target: route.key,
31
+ canPreventDefault: true
32
+ });
33
+
34
+ if (!event.defaultPrevented) {
35
+ navigation.dispatch({ ...(focused ? DrawerActions.closeDrawer() : CommonActions.navigate({
36
+ name: route.name,
37
+ merge: true
38
+ })),
39
+ target: state.key
40
+ });
41
+ }
42
+ };
43
+
25
44
  const {
26
45
  title,
27
46
  drawerLabel,
28
47
  drawerIcon,
29
48
  drawerLabelStyle,
30
- drawerItemStyle
49
+ drawerItemStyle,
50
+ drawerAllowFontScaling
31
51
  } = descriptors[route.key].options;
32
52
  return /*#__PURE__*/React.createElement(DrawerItem, {
33
53
  key: route.key,
@@ -38,17 +58,11 @@ export default function DrawerItemList({
38
58
  inactiveTintColor: drawerInactiveTintColor,
39
59
  activeBackgroundColor: drawerActiveBackgroundColor,
40
60
  inactiveBackgroundColor: drawerInactiveBackgroundColor,
61
+ allowFontScaling: drawerAllowFontScaling,
41
62
  labelStyle: drawerLabelStyle,
42
63
  style: drawerItemStyle,
43
64
  to: buildLink(route.name, route.params),
44
- onPress: () => {
45
- navigation.dispatch({ ...(focused ? DrawerActions.closeDrawer() : CommonActions.navigate({
46
- name: route.name,
47
- merge: true
48
- })),
49
- target: state.key
50
- });
51
- }
65
+ onPress: onPress
52
66
  });
53
67
  });
54
68
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["DrawerItemList.tsx"],"names":["CommonActions","DrawerActions","useLinkBuilder","React","DrawerItem","DrawerItemList","state","navigation","descriptors","buildLink","focusedRoute","routes","index","focusedDescriptor","key","focusedOptions","options","drawerActiveTintColor","drawerInactiveTintColor","drawerActiveBackgroundColor","drawerInactiveBackgroundColor","map","route","i","focused","title","drawerLabel","drawerIcon","drawerLabelStyle","drawerItemStyle","undefined","name","params","dispatch","closeDrawer","navigate","merge","target"],"mappings":"AAAA,SACEA,aADF,EAEEC,aAFF,EAKEC,cALF,QAMO,0BANP;AAOA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,UAAP,MAAuB,cAAvB;;AAQA;AACA;AACA;AACA,eAAe,SAASC,cAAT,CAAwB;AACrCC,EAAAA,KADqC;AAErCC,EAAAA,UAFqC;AAGrCC,EAAAA;AAHqC,CAAxB,EAIL;AACR,QAAMC,SAAS,GAAGP,cAAc,EAAhC;AAEA,QAAMQ,YAAY,GAAGJ,KAAK,CAACK,MAAN,CAAaL,KAAK,CAACM,KAAnB,CAArB;AACA,QAAMC,iBAAiB,GAAGL,WAAW,CAACE,YAAY,CAACI,GAAd,CAArC;AACA,QAAMC,cAAc,GAAGF,iBAAiB,CAACG,OAAzC;AAEA,QAAM;AACJC,IAAAA,qBADI;AAEJC,IAAAA,uBAFI;AAGJC,IAAAA,2BAHI;AAIJC,IAAAA;AAJI,MAKFL,cALJ;AAOA,SAAOT,KAAK,CAACK,MAAN,CAAaU,GAAb,CAAiB,CAACC,KAAD,EAAQC,CAAR,KAAc;AACpC,UAAMC,OAAO,GAAGD,CAAC,KAAKjB,KAAK,CAACM,KAA5B;AACA,UAAM;AACJa,MAAAA,KADI;AAEJC,MAAAA,WAFI;AAGJC,MAAAA,UAHI;AAIJC,MAAAA,gBAJI;AAKJC,MAAAA;AALI,QAMFrB,WAAW,CAACc,KAAK,CAACR,GAAP,CAAX,CAAuBE,OAN3B;AAQA,wBACE,oBAAC,UAAD;AACE,MAAA,GAAG,EAAEM,KAAK,CAACR,GADb;AAEE,MAAA,KAAK,EACHY,WAAW,KAAKI,SAAhB,GACIJ,WADJ,GAEID,KAAK,KAAKK,SAAV,GACAL,KADA,GAEAH,KAAK,CAACS,IAPd;AASE,MAAA,IAAI,EAAEJ,UATR;AAUE,MAAA,OAAO,EAAEH,OAVX;AAWE,MAAA,eAAe,EAAEP,qBAXnB;AAYE,MAAA,iBAAiB,EAAEC,uBAZrB;AAaE,MAAA,qBAAqB,EAAEC,2BAbzB;AAcE,MAAA,uBAAuB,EAAEC,6BAd3B;AAeE,MAAA,UAAU,EAAEQ,gBAfd;AAgBE,MAAA,KAAK,EAAEC,eAhBT;AAiBE,MAAA,EAAE,EAAEpB,SAAS,CAACa,KAAK,CAACS,IAAP,EAAaT,KAAK,CAACU,MAAnB,CAjBf;AAkBE,MAAA,OAAO,EAAE,MAAM;AACbzB,QAAAA,UAAU,CAAC0B,QAAX,CAAoB,EAClB,IAAIT,OAAO,GACPvB,aAAa,CAACiC,WAAd,EADO,GAEPlC,aAAa,CAACmC,QAAd,CAAuB;AAAEJ,YAAAA,IAAI,EAAET,KAAK,CAACS,IAAd;AAAoBK,YAAAA,KAAK,EAAE;AAA3B,WAAvB,CAFJ,CADkB;AAIlBC,UAAAA,MAAM,EAAE/B,KAAK,CAACQ;AAJI,SAApB;AAMD;AAzBH,MADF;AA6BD,GAvCM,CAAP;AAwCD","sourcesContent":["import {\n CommonActions,\n DrawerActions,\n DrawerNavigationState,\n ParamListBase,\n useLinkBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type { DrawerDescriptorMap, DrawerNavigationHelpers } from '../types';\nimport DrawerItem from './DrawerItem';\n\ntype Props = {\n state: DrawerNavigationState<ParamListBase>;\n navigation: DrawerNavigationHelpers;\n descriptors: DrawerDescriptorMap;\n};\n\n/**\n * Component that renders the navigation list in the drawer.\n */\nexport default function DrawerItemList({\n state,\n navigation,\n descriptors,\n}: Props) {\n const buildLink = useLinkBuilder();\n\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n\n const {\n drawerActiveTintColor,\n drawerInactiveTintColor,\n drawerActiveBackgroundColor,\n drawerInactiveBackgroundColor,\n } = focusedOptions;\n\n return state.routes.map((route, i) => {\n const focused = i === state.index;\n const {\n title,\n drawerLabel,\n drawerIcon,\n drawerLabelStyle,\n drawerItemStyle,\n } = descriptors[route.key].options;\n\n return (\n <DrawerItem\n key={route.key}\n label={\n drawerLabel !== undefined\n ? drawerLabel\n : title !== undefined\n ? title\n : route.name\n }\n icon={drawerIcon}\n focused={focused}\n activeTintColor={drawerActiveTintColor}\n inactiveTintColor={drawerInactiveTintColor}\n activeBackgroundColor={drawerActiveBackgroundColor}\n inactiveBackgroundColor={drawerInactiveBackgroundColor}\n labelStyle={drawerLabelStyle}\n style={drawerItemStyle}\n to={buildLink(route.name, route.params)}\n onPress={() => {\n navigation.dispatch({\n ...(focused\n ? DrawerActions.closeDrawer()\n : CommonActions.navigate({ name: route.name, merge: true })),\n target: state.key,\n });\n }}\n />\n );\n }) as React.ReactNode as React.ReactElement;\n}\n"]}
1
+ {"version":3,"sources":["DrawerItemList.tsx"],"names":["CommonActions","DrawerActions","useLinkBuilder","React","DrawerItem","DrawerItemList","state","navigation","descriptors","buildLink","focusedRoute","routes","index","focusedDescriptor","key","focusedOptions","options","drawerActiveTintColor","drawerInactiveTintColor","drawerActiveBackgroundColor","drawerInactiveBackgroundColor","map","route","i","focused","onPress","event","emit","type","target","canPreventDefault","defaultPrevented","dispatch","closeDrawer","navigate","name","merge","title","drawerLabel","drawerIcon","drawerLabelStyle","drawerItemStyle","drawerAllowFontScaling","undefined","params"],"mappings":"AAAA,SACEA,aADF,EAEEC,aAFF,EAKEC,cALF,QAMO,0BANP;AAOA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAGA,OAAOC,UAAP,MAAuB,cAAvB;;AAQA;AACA;AACA;AACA,eAAe,SAASC,cAAT,OAIL;AAAA,MAJ6B;AACrCC,IAAAA,KADqC;AAErCC,IAAAA,UAFqC;AAGrCC,IAAAA;AAHqC,GAI7B;AACR,QAAMC,SAAS,GAAGP,cAAc,EAAhC;AAEA,QAAMQ,YAAY,GAAGJ,KAAK,CAACK,MAAN,CAAaL,KAAK,CAACM,KAAnB,CAArB;AACA,QAAMC,iBAAiB,GAAGL,WAAW,CAACE,YAAY,CAACI,GAAd,CAArC;AACA,QAAMC,cAAc,GAAGF,iBAAiB,CAACG,OAAzC;AAEA,QAAM;AACJC,IAAAA,qBADI;AAEJC,IAAAA,uBAFI;AAGJC,IAAAA,2BAHI;AAIJC,IAAAA;AAJI,MAKFL,cALJ;AAOA,SAAOT,KAAK,CAACK,MAAN,CAAaU,GAAb,CAAiB,CAACC,KAAD,EAAQC,CAAR,KAAc;AACpC,UAAMC,OAAO,GAAGD,CAAC,KAAKjB,KAAK,CAACM,KAA5B;;AAEA,UAAMa,OAAO,GAAG,MAAM;AACpB,YAAMC,KAAK,GAAGnB,UAAU,CAACoB,IAAX,CAAgB;AAC5BC,QAAAA,IAAI,EAAE,iBADsB;AAE5BC,QAAAA,MAAM,EAAEP,KAAK,CAACR,GAFc;AAG5BgB,QAAAA,iBAAiB,EAAE;AAHS,OAAhB,CAAd;;AAMA,UAAI,CAACJ,KAAK,CAACK,gBAAX,EAA6B;AAC3BxB,QAAAA,UAAU,CAACyB,QAAX,CAAoB,EAClB,IAAIR,OAAO,GACPvB,aAAa,CAACgC,WAAd,EADO,GAEPjC,aAAa,CAACkC,QAAd,CAAuB;AAAEC,YAAAA,IAAI,EAAEb,KAAK,CAACa,IAAd;AAAoBC,YAAAA,KAAK,EAAE;AAA3B,WAAvB,CAFJ,CADkB;AAIlBP,UAAAA,MAAM,EAAEvB,KAAK,CAACQ;AAJI,SAApB;AAMD;AACF,KAfD;;AAiBA,UAAM;AACJuB,MAAAA,KADI;AAEJC,MAAAA,WAFI;AAGJC,MAAAA,UAHI;AAIJC,MAAAA,gBAJI;AAKJC,MAAAA,eALI;AAMJC,MAAAA;AANI,QAOFlC,WAAW,CAACc,KAAK,CAACR,GAAP,CAAX,CAAuBE,OAP3B;AASA,wBACE,oBAAC,UAAD;AACE,MAAA,GAAG,EAAEM,KAAK,CAACR,GADb;AAEE,MAAA,KAAK,EACHwB,WAAW,KAAKK,SAAhB,GACIL,WADJ,GAEID,KAAK,KAAKM,SAAV,GACAN,KADA,GAEAf,KAAK,CAACa,IAPd;AASE,MAAA,IAAI,EAAEI,UATR;AAUE,MAAA,OAAO,EAAEf,OAVX;AAWE,MAAA,eAAe,EAAEP,qBAXnB;AAYE,MAAA,iBAAiB,EAAEC,uBAZrB;AAaE,MAAA,qBAAqB,EAAEC,2BAbzB;AAcE,MAAA,uBAAuB,EAAEC,6BAd3B;AAeE,MAAA,gBAAgB,EAAEsB,sBAfpB;AAgBE,MAAA,UAAU,EAAEF,gBAhBd;AAiBE,MAAA,KAAK,EAAEC,eAjBT;AAkBE,MAAA,EAAE,EAAEhC,SAAS,CAACa,KAAK,CAACa,IAAP,EAAab,KAAK,CAACsB,MAAnB,CAlBf;AAmBE,MAAA,OAAO,EAAEnB;AAnBX,MADF;AAuBD,GApDM,CAAP;AAqDD","sourcesContent":["import {\n CommonActions,\n DrawerActions,\n DrawerNavigationState,\n ParamListBase,\n useLinkBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type { DrawerDescriptorMap, DrawerNavigationHelpers } from '../types';\nimport DrawerItem from './DrawerItem';\n\ntype Props = {\n state: DrawerNavigationState<ParamListBase>;\n navigation: DrawerNavigationHelpers;\n descriptors: DrawerDescriptorMap;\n};\n\n/**\n * Component that renders the navigation list in the drawer.\n */\nexport default function DrawerItemList({\n state,\n navigation,\n descriptors,\n}: Props) {\n const buildLink = useLinkBuilder();\n\n const focusedRoute = state.routes[state.index];\n const focusedDescriptor = descriptors[focusedRoute.key];\n const focusedOptions = focusedDescriptor.options;\n\n const {\n drawerActiveTintColor,\n drawerInactiveTintColor,\n drawerActiveBackgroundColor,\n drawerInactiveBackgroundColor,\n } = focusedOptions;\n\n return state.routes.map((route, i) => {\n const focused = i === state.index;\n\n const onPress = () => {\n const event = navigation.emit({\n type: 'drawerItemPress',\n target: route.key,\n canPreventDefault: true,\n });\n\n if (!event.defaultPrevented) {\n navigation.dispatch({\n ...(focused\n ? DrawerActions.closeDrawer()\n : CommonActions.navigate({ name: route.name, merge: true })),\n target: state.key,\n });\n }\n };\n\n const {\n title,\n drawerLabel,\n drawerIcon,\n drawerLabelStyle,\n drawerItemStyle,\n drawerAllowFontScaling,\n } = descriptors[route.key].options;\n\n return (\n <DrawerItem\n key={route.key}\n label={\n drawerLabel !== undefined\n ? drawerLabel\n : title !== undefined\n ? title\n : route.name\n }\n icon={drawerIcon}\n focused={focused}\n activeTintColor={drawerActiveTintColor}\n inactiveTintColor={drawerInactiveTintColor}\n activeBackgroundColor={drawerActiveBackgroundColor}\n inactiveBackgroundColor={drawerInactiveBackgroundColor}\n allowFontScaling={drawerAllowFontScaling}\n labelStyle={drawerLabelStyle}\n style={drawerItemStyle}\n to={buildLink(route.name, route.params)}\n onPress={onPress}\n />\n );\n }) as React.ReactNode as React.ReactElement;\n}\n"]}
@@ -4,10 +4,11 @@ import { PlatformPressable } from '@react-navigation/elements';
4
4
  import { DrawerActions, useNavigation } from '@react-navigation/native';
5
5
  import * as React from 'react';
6
6
  import { Image, Platform, StyleSheet } from 'react-native';
7
- export default function DrawerToggleButton({
8
- tintColor,
9
- ...rest
10
- }) {
7
+ export default function DrawerToggleButton(_ref) {
8
+ let {
9
+ tintColor,
10
+ ...rest
11
+ } = _ref;
11
12
  const navigation = useNavigation();
12
13
  return /*#__PURE__*/React.createElement(PlatformPressable, _extends({}, rest, {
13
14
  accessible: true,