@react-navigation/stack 6.0.11 → 6.2.0

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 (81) hide show
  1. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +72 -64
  2. package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  3. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +37 -32
  4. package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  5. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +1 -1
  6. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +1 -1
  7. package/lib/commonjs/index.js +13 -11
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/navigators/createStackNavigator.js +26 -21
  10. package/lib/commonjs/navigators/createStackNavigator.js.map +1 -1
  11. package/lib/commonjs/utils/debounce.js +5 -1
  12. package/lib/commonjs/utils/debounce.js.map +1 -1
  13. package/lib/commonjs/utils/memoize.js +5 -1
  14. package/lib/commonjs/utils/memoize.js.map +1 -1
  15. package/lib/commonjs/views/GestureHandler.js +7 -4
  16. package/lib/commonjs/views/GestureHandler.js.map +1 -1
  17. package/lib/commonjs/views/GestureHandlerNative.js +1 -1
  18. package/lib/commonjs/views/Header/Header.js +10 -9
  19. package/lib/commonjs/views/Header/Header.js.map +1 -1
  20. package/lib/commonjs/views/Header/HeaderContainer.js +10 -9
  21. package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -1
  22. package/lib/commonjs/views/Header/HeaderSegment.js +5 -0
  23. package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -1
  24. package/lib/commonjs/views/ModalStatusBarManager.js +11 -9
  25. package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -1
  26. package/lib/commonjs/views/Screens.js +14 -10
  27. package/lib/commonjs/views/Screens.js.map +1 -1
  28. package/lib/commonjs/views/Stack/Card.js +32 -24
  29. package/lib/commonjs/views/Stack/Card.js.map +1 -1
  30. package/lib/commonjs/views/Stack/CardContainer.js +43 -40
  31. package/lib/commonjs/views/Stack/CardContainer.js.map +1 -1
  32. package/lib/commonjs/views/Stack/CardSheet.js +7 -6
  33. package/lib/commonjs/views/Stack/CardSheet.js.map +1 -1
  34. package/lib/commonjs/views/Stack/CardStack.js +26 -17
  35. package/lib/commonjs/views/Stack/CardStack.js.map +1 -1
  36. package/lib/commonjs/views/Stack/StackView.js +62 -46
  37. package/lib/commonjs/views/Stack/StackView.js.map +1 -1
  38. package/lib/module/TransitionConfigs/CardStyleInterpolators.js +67 -59
  39. package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  40. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +35 -30
  41. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/module/navigators/createStackNavigator.js +25 -20
  44. package/lib/module/navigators/createStackNavigator.js.map +1 -1
  45. package/lib/module/utils/debounce.js +5 -1
  46. package/lib/module/utils/debounce.js.map +1 -1
  47. package/lib/module/utils/memoize.js +5 -1
  48. package/lib/module/utils/memoize.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/Header/Header.js +10 -9
  52. package/lib/module/views/Header/Header.js.map +1 -1
  53. package/lib/module/views/Header/HeaderContainer.js +10 -9
  54. package/lib/module/views/Header/HeaderContainer.js.map +1 -1
  55. package/lib/module/views/Header/HeaderSegment.js +5 -0
  56. package/lib/module/views/Header/HeaderSegment.js.map +1 -1
  57. package/lib/module/views/ModalStatusBarManager.js +11 -9
  58. package/lib/module/views/ModalStatusBarManager.js.map +1 -1
  59. package/lib/module/views/Screens.js +13 -9
  60. package/lib/module/views/Screens.js.map +1 -1
  61. package/lib/module/views/Stack/Card.js +32 -24
  62. package/lib/module/views/Stack/Card.js.map +1 -1
  63. package/lib/module/views/Stack/CardContainer.js +43 -40
  64. package/lib/module/views/Stack/CardContainer.js.map +1 -1
  65. package/lib/module/views/Stack/CardSheet.js +7 -6
  66. package/lib/module/views/Stack/CardSheet.js.map +1 -1
  67. package/lib/module/views/Stack/CardStack.js +26 -17
  68. package/lib/module/views/Stack/CardStack.js.map +1 -1
  69. package/lib/module/views/Stack/StackView.js +62 -46
  70. package/lib/module/views/Stack/StackView.js.map +1 -1
  71. package/lib/typescript/src/index.d.ts +1 -1
  72. package/lib/typescript/src/navigators/createStackNavigator.d.ts +1 -1
  73. package/lib/typescript/src/types.d.ts +9 -5
  74. package/package.json +9 -9
  75. package/src/index.tsx +1 -0
  76. package/src/navigators/createStackNavigator.tsx +4 -1
  77. package/src/types.tsx +12 -4
  78. package/src/views/Header/HeaderSegment.tsx +16 -4
  79. package/src/views/Stack/Card.tsx +1 -1
  80. package/src/views/Stack/CardContainer.tsx +3 -2
  81. package/src/views/Stack/CardStack.tsx +19 -7
@@ -1,9 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { View } from 'react-native';
3
3
 
4
- const Dummy = ({
5
- children
6
- }) => /*#__PURE__*/React.createElement(React.Fragment, null, children);
4
+ const Dummy = _ref => {
5
+ let {
6
+ children
7
+ } = _ref;
8
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children);
9
+ };
7
10
 
8
11
  export const PanGestureHandler = Dummy;
9
12
  export const GestureHandlerRootView = View;
@@ -1 +1 @@
1
- {"version":3,"sources":["GestureHandler.tsx"],"names":["React","View","Dummy","children","PanGestureHandler","GestureHandlerRootView","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,QAAqB,cAArB;;AAGA,MAAMC,KAAU,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,kBACjB,0CAAGA,QAAH,CADF;;AAIA,OAAO,MAAMC,iBAAiB,GAC5BF,KADK;AAGP,OAAO,MAAMG,sBAAsB,GAAGJ,IAA/B;AAEP,OAAO,MAAMK,YAAY,GAAG;AAC1BC,EAAAA,YAAY,EAAE,CADY;AAE1BC,EAAAA,MAAM,EAAE,CAFkB;AAG1BC,EAAAA,KAAK,EAAE,CAHmB;AAI1BC,EAAAA,SAAS,EAAE,CAJe;AAK1BC,EAAAA,MAAM,EAAE,CALkB;AAM1BC,EAAAA,GAAG,EAAE;AANqB,CAArB","sourcesContent":["import * as React from 'react';\nimport { View } from 'react-native';\nimport type { PanGestureHandlerProperties } from 'react-native-gesture-handler';\n\nconst Dummy: any = ({ children }: { children: React.ReactNode }) => (\n <>{children}</>\n);\n\nexport const PanGestureHandler =\n Dummy as React.ComponentType<PanGestureHandlerProperties>;\n\nexport const GestureHandlerRootView = View;\n\nexport const GestureState = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n};\n\nexport type { PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n"]}
1
+ {"version":3,"sources":["GestureHandler.tsx"],"names":["React","View","Dummy","children","PanGestureHandler","GestureHandlerRootView","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,QAAqB,cAArB;;AAGA,MAAMC,KAAU,GAAG;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,sBACjB,0CAAGA,QAAH,CADiB;AAAA,CAAnB;;AAIA,OAAO,MAAMC,iBAAiB,GAC5BF,KADK;AAGP,OAAO,MAAMG,sBAAsB,GAAGJ,IAA/B;AAEP,OAAO,MAAMK,YAAY,GAAG;AAC1BC,EAAAA,YAAY,EAAE,CADY;AAE1BC,EAAAA,MAAM,EAAE,CAFkB;AAG1BC,EAAAA,KAAK,EAAE,CAHmB;AAI1BC,EAAAA,SAAS,EAAE,CAJe;AAK1BC,EAAAA,MAAM,EAAE,CALkB;AAM1BC,EAAAA,GAAG,EAAE;AANqB,CAArB","sourcesContent":["import * as React from 'react';\nimport { View } from 'react-native';\nimport type { PanGestureHandlerProperties } from 'react-native-gesture-handler';\n\nconst Dummy: any = ({ children }: { children: React.ReactNode }) => (\n <>{children}</>\n);\n\nexport const PanGestureHandler =\n Dummy as React.ComponentType<PanGestureHandlerProperties>;\n\nexport const GestureHandlerRootView = View;\n\nexport const GestureState = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n};\n\nexport type { PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n"]}
@@ -7,15 +7,16 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
7
  import debounce from '../../utils/debounce';
8
8
  import ModalPresentationContext from '../../utils/ModalPresentationContext';
9
9
  import HeaderSegment from './HeaderSegment';
10
- export default /*#__PURE__*/React.memo(function Header({
11
- back,
12
- layout,
13
- progress,
14
- options,
15
- route,
16
- navigation,
17
- styleInterpolator
18
- }) {
10
+ export default /*#__PURE__*/React.memo(function Header(_ref) {
11
+ let {
12
+ back,
13
+ layout,
14
+ progress,
15
+ options,
16
+ route,
17
+ navigation,
18
+ styleInterpolator
19
+ } = _ref;
19
20
  const insets = useSafeAreaInsets();
20
21
  let previousTitle; // The label for the left back button shows the title of the previous screen
21
22
  // If a custom label is specified, we use it, otherwise use previous screen's title
@@ -1 +1 @@
1
- {"version":3,"sources":["Header.tsx"],"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","debounce","ModalPresentationContext","HeaderSegment","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","pop","source","key","isModal","useContext","isParentHeaderShown","statusBarHeight","headerStatusBarHeight","top","name"],"mappings":";;AAAA,SAASA,cAAT,EAAyBC,kBAAzB,QAAmD,4BAAnD;AACA,SAASC,YAAT,QAA6B,0BAA7B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,OAAOC,QAAP,MAAqB,sBAArB;AACA,OAAOC,wBAAP,MAAqC,sCAArC;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AAEA,4BAAeJ,KAAK,CAACK,IAAN,CAAW,SAASC,MAAT,CAAgB;AACxCC,EAAAA,IADwC;AAExCC,EAAAA,MAFwC;AAGxCC,EAAAA,QAHwC;AAIxCC,EAAAA,OAJwC;AAKxCC,EAAAA,KALwC;AAMxCC,EAAAA,UANwC;AAOxCC,EAAAA;AAPwC,CAAhB,EAQL;AACnB,QAAMC,MAAM,GAAGb,iBAAiB,EAAhC;AAEA,MAAIc,aAAJ,CAHmB,CAKnB;AACA;;AACA,MAAIL,OAAO,CAACM,eAAR,KAA4BC,SAAhC,EAA2C;AACzCF,IAAAA,aAAa,GAAGL,OAAO,CAACM,eAAxB;AACD,GAFD,MAEO,IAAIT,IAAJ,EAAU;AACfQ,IAAAA,aAAa,GAAGR,IAAI,CAACW,KAArB;AACD,GAXkB,CAanB;;;AACA,QAAMC,MAAM,GAAGnB,KAAK,CAACoB,WAAN,CACblB,QAAQ,CAAC,MAAM;AACb,QAAIU,UAAU,CAACS,SAAX,MAA0BT,UAAU,CAACU,SAAX,EAA9B,EAAsD;AACpDV,MAAAA,UAAU,CAACW,QAAX,CAAoB,EAClB,GAAGxB,YAAY,CAACyB,GAAb,EADe;AAElBC,QAAAA,MAAM,EAAEd,KAAK,CAACe;AAFI,OAApB;AAID;AACF,GAPO,EAOL,EAPK,CADK,EASb,CAACd,UAAD,EAAaD,KAAK,CAACe,GAAnB,CATa,CAAf;AAYA,QAAMC,OAAO,GAAG3B,KAAK,CAAC4B,UAAN,CAAiBzB,wBAAjB,CAAhB;AACA,QAAM0B,mBAAmB,GAAG7B,KAAK,CAAC4B,UAAN,CAAiB9B,kBAAjB,CAA5B;AAEA,QAAMgC,eAAe,GACnBpB,OAAO,CAACqB,qBAAR,KAAkCd,SAAlC,GACIP,OAAO,CAACqB,qBADZ,GAEIJ,OAAO,IAAIE,mBAAX,GACA,CADA,GAEAf,MAAM,CAACkB,GALb;AAOA,sBACE,oBAAC,aAAD,eACMtB,OADN;AAEE,IAAA,KAAK,EAAEb,cAAc,CAACa,OAAD,EAAUC,KAAK,CAACsB,IAAhB,CAFvB;AAGE,IAAA,QAAQ,EAAExB,QAHZ;AAIE,IAAA,MAAM,EAAED,MAJV;AAKE,IAAA,KAAK,EAAEmB,OALT;AAME,IAAA,eAAe,EACbjB,OAAO,CAACM,eAAR,KAA4BC,SAA5B,GACIP,OAAO,CAACM,eADZ,GAEID,aATR;AAWE,IAAA,qBAAqB,EAAEe,eAXzB;AAYE,IAAA,QAAQ,EAAEvB,IAAI,GAAGY,MAAH,GAAYF,SAZ5B;AAaE,IAAA,iBAAiB,EAAEJ;AAbrB,KADF;AAiBD,CA7Dc,CAAf","sourcesContent":["import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { StackHeaderProps } from '../../types';\nimport debounce from '../../utils/debounce';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport HeaderSegment from './HeaderSegment';\n\nexport default React.memo(function Header({\n back,\n layout,\n progress,\n options,\n route,\n navigation,\n styleInterpolator,\n}: StackHeaderProps) {\n const insets = useSafeAreaInsets();\n\n let previousTitle;\n\n // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const goBack = React.useCallback(\n debounce(() => {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n });\n }\n }, 50),\n [navigation, route.key]\n );\n\n const isModal = React.useContext(ModalPresentationContext);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const statusBarHeight =\n options.headerStatusBarHeight !== undefined\n ? options.headerStatusBarHeight\n : isModal || isParentHeaderShown\n ? 0\n : insets.top;\n\n return (\n <HeaderSegment\n {...options}\n title={getHeaderTitle(options, route.name)}\n progress={progress}\n layout={layout}\n modal={isModal}\n headerBackTitle={\n options.headerBackTitle !== undefined\n ? options.headerBackTitle\n : previousTitle\n }\n headerStatusBarHeight={statusBarHeight}\n onGoBack={back ? goBack : undefined}\n styleInterpolator={styleInterpolator}\n />\n );\n});\n"]}
1
+ {"version":3,"sources":["Header.tsx"],"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","debounce","ModalPresentationContext","HeaderSegment","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","pop","source","key","isModal","useContext","isParentHeaderShown","statusBarHeight","headerStatusBarHeight","top","name"],"mappings":";;AAAA,SAASA,cAAT,EAAyBC,kBAAzB,QAAmD,4BAAnD;AACA,SAASC,YAAT,QAA6B,0BAA7B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,OAAOC,QAAP,MAAqB,sBAArB;AACA,OAAOC,wBAAP,MAAqC,sCAArC;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AAEA,4BAAeJ,KAAK,CAACK,IAAN,CAAW,SAASC,MAAT,OAQL;AAAA,MARqB;AACxCC,IAAAA,IADwC;AAExCC,IAAAA,MAFwC;AAGxCC,IAAAA,QAHwC;AAIxCC,IAAAA,OAJwC;AAKxCC,IAAAA,KALwC;AAMxCC,IAAAA,UANwC;AAOxCC,IAAAA;AAPwC,GAQrB;AACnB,QAAMC,MAAM,GAAGb,iBAAiB,EAAhC;AAEA,MAAIc,aAAJ,CAHmB,CAKnB;AACA;;AACA,MAAIL,OAAO,CAACM,eAAR,KAA4BC,SAAhC,EAA2C;AACzCF,IAAAA,aAAa,GAAGL,OAAO,CAACM,eAAxB;AACD,GAFD,MAEO,IAAIT,IAAJ,EAAU;AACfQ,IAAAA,aAAa,GAAGR,IAAI,CAACW,KAArB;AACD,GAXkB,CAanB;;;AACA,QAAMC,MAAM,GAAGnB,KAAK,CAACoB,WAAN,CACblB,QAAQ,CAAC,MAAM;AACb,QAAIU,UAAU,CAACS,SAAX,MAA0BT,UAAU,CAACU,SAAX,EAA9B,EAAsD;AACpDV,MAAAA,UAAU,CAACW,QAAX,CAAoB,EAClB,GAAGxB,YAAY,CAACyB,GAAb,EADe;AAElBC,QAAAA,MAAM,EAAEd,KAAK,CAACe;AAFI,OAApB;AAID;AACF,GAPO,EAOL,EAPK,CADK,EASb,CAACd,UAAD,EAAaD,KAAK,CAACe,GAAnB,CATa,CAAf;AAYA,QAAMC,OAAO,GAAG3B,KAAK,CAAC4B,UAAN,CAAiBzB,wBAAjB,CAAhB;AACA,QAAM0B,mBAAmB,GAAG7B,KAAK,CAAC4B,UAAN,CAAiB9B,kBAAjB,CAA5B;AAEA,QAAMgC,eAAe,GACnBpB,OAAO,CAACqB,qBAAR,KAAkCd,SAAlC,GACIP,OAAO,CAACqB,qBADZ,GAEIJ,OAAO,IAAIE,mBAAX,GACA,CADA,GAEAf,MAAM,CAACkB,GALb;AAOA,sBACE,oBAAC,aAAD,eACMtB,OADN;AAEE,IAAA,KAAK,EAAEb,cAAc,CAACa,OAAD,EAAUC,KAAK,CAACsB,IAAhB,CAFvB;AAGE,IAAA,QAAQ,EAAExB,QAHZ;AAIE,IAAA,MAAM,EAAED,MAJV;AAKE,IAAA,KAAK,EAAEmB,OALT;AAME,IAAA,eAAe,EACbjB,OAAO,CAACM,eAAR,KAA4BC,SAA5B,GACIP,OAAO,CAACM,eADZ,GAEID,aATR;AAWE,IAAA,qBAAqB,EAAEe,eAXzB;AAYE,IAAA,QAAQ,EAAEvB,IAAI,GAAGY,MAAH,GAAYF,SAZ5B;AAaE,IAAA,iBAAiB,EAAEJ;AAbrB,KADF;AAiBD,CA7Dc,CAAf","sourcesContent":["import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\nimport * as React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { StackHeaderProps } from '../../types';\nimport debounce from '../../utils/debounce';\nimport ModalPresentationContext from '../../utils/ModalPresentationContext';\nimport HeaderSegment from './HeaderSegment';\n\nexport default React.memo(function Header({\n back,\n layout,\n progress,\n options,\n route,\n navigation,\n styleInterpolator,\n}: StackHeaderProps) {\n const insets = useSafeAreaInsets();\n\n let previousTitle;\n\n // The label for the left back button shows the title of the previous screen\n // If a custom label is specified, we use it, otherwise use previous screen's title\n if (options.headerBackTitle !== undefined) {\n previousTitle = options.headerBackTitle;\n } else if (back) {\n previousTitle = back.title;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const goBack = React.useCallback(\n debounce(() => {\n if (navigation.isFocused() && navigation.canGoBack()) {\n navigation.dispatch({\n ...StackActions.pop(),\n source: route.key,\n });\n }\n }, 50),\n [navigation, route.key]\n );\n\n const isModal = React.useContext(ModalPresentationContext);\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const statusBarHeight =\n options.headerStatusBarHeight !== undefined\n ? options.headerStatusBarHeight\n : isModal || isParentHeaderShown\n ? 0\n : insets.top;\n\n return (\n <HeaderSegment\n {...options}\n title={getHeaderTitle(options, route.name)}\n progress={progress}\n layout={layout}\n modal={isModal}\n headerBackTitle={\n options.headerBackTitle !== undefined\n ? options.headerBackTitle\n : previousTitle\n }\n headerStatusBarHeight={statusBarHeight}\n onGoBack={back ? goBack : undefined}\n styleInterpolator={styleInterpolator}\n />\n );\n});\n"]}
@@ -4,15 +4,16 @@ import * as React from 'react';
4
4
  import { Animated, StyleSheet, View } from 'react-native';
5
5
  import { forNoAnimation, forSlideLeft, forSlideRight, forSlideUp } from '../../TransitionConfigs/HeaderStyleInterpolators';
6
6
  import Header from './Header';
7
- export default function HeaderContainer({
8
- mode,
9
- scenes,
10
- layout,
11
- getPreviousScene,
12
- getFocusedRoute,
13
- onContentHeightChange,
14
- style
15
- }) {
7
+ export default function HeaderContainer(_ref) {
8
+ let {
9
+ mode,
10
+ scenes,
11
+ layout,
12
+ getPreviousScene,
13
+ getFocusedRoute,
14
+ onContentHeightChange,
15
+ style
16
+ } = _ref;
16
17
  const focusedRoute = getFocusedRoute();
17
18
  const parentHeaderBack = React.useContext(HeaderBackContext);
18
19
  return /*#__PURE__*/React.createElement(Animated.View, {
@@ -1 +1 @@
1
- {"version":3,"sources":["HeaderContainer.tsx"],"names":["getHeaderTitle","HeaderBackContext","NavigationContext","NavigationRouteContext","React","Animated","StyleSheet","View","forNoAnimation","forSlideLeft","forSlideRight","forSlideUp","Header","HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","useContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","e","height","nativeEvent","undefined","styles","create","position","top","left","right"],"mappings":"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","sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"]}
1
+ {"version":3,"sources":["HeaderContainer.tsx"],"names":["getHeaderTitle","HeaderBackContext","NavigationContext","NavigationRouteContext","React","Animated","StyleSheet","View","forNoAnimation","forSlideLeft","forSlideRight","forSlideUp","Header","HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","useContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","e","height","nativeEvent","undefined","styles","create","position","top","left","right"],"mappings":"AAAA,SAASA,cAAT,EAAyBC,iBAAzB,QAAkD,4BAAlD;AACA,SACEC,iBADF,EAEEC,sBAFF,QAKO,0BALP;AAMA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAA8BC,UAA9B,EAA0CC,IAA1C,QAAiE,cAAjE;AAEA,SACEC,cADF,EAEEC,YAFF,EAGEC,aAHF,EAIEC,UAJF,QAKO,kDALP;AAaA,OAAOC,MAAP,MAAmB,UAAnB;AAeA,eAAe,SAASC,eAAT,OAQL;AAAA,MAR8B;AACtCC,IAAAA,IADsC;AAEtCC,IAAAA,MAFsC;AAGtCC,IAAAA,MAHsC;AAItCC,IAAAA,gBAJsC;AAKtCC,IAAAA,eALsC;AAMtCC,IAAAA,qBANsC;AAOtCC,IAAAA;AAPsC,GAQ9B;AACR,QAAMC,YAAY,GAAGH,eAAe,EAApC;AACA,QAAMI,gBAAgB,GAAGlB,KAAK,CAACmB,UAAN,CAAiBtB,iBAAjB,CAAzB;AAEA,sBACE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,aAAa,EAAC,UAA7B;AAAwC,IAAA,KAAK,EAAEmB;AAA/C,KACGL,MAAM,CAACS,KAAP,CAAa,CAAC,CAAd,EAAiBC,GAAjB,CAAqB,CAACC,KAAD,EAAQC,CAAR,EAAWC,IAAX,KAAoB;AAAA;;AACxC,QAAKd,IAAI,KAAK,QAAT,IAAqBa,CAAC,KAAKC,IAAI,CAACC,MAAL,GAAc,CAA1C,IAAgD,CAACH,KAArD,EAA4D;AAC1D,aAAO,IAAP;AACD;;AAED,UAAM;AACJI,MAAAA,MADI;AAEJC,MAAAA,UAFI;AAGJC,MAAAA,WAAW,GAAG,IAHV;AAIJC,MAAAA,iBAJI;AAKJC,MAAAA;AALI,QAMFR,KAAK,CAACS,UAAN,CAAiBC,OANrB;;AAQA,QAAIL,UAAU,KAAKjB,IAAf,IAAuB,CAACkB,WAA5B,EAAyC;AACvC,aAAO,IAAP;AACD;;AAED,UAAMK,SAAS,GAAGhB,YAAY,CAACiB,GAAb,KAAqBZ,KAAK,CAACS,UAAN,CAAiBI,KAAjB,CAAuBD,GAA9D;AACA,UAAME,aAAa,GAAGvB,gBAAgB,CAAC;AACrCsB,MAAAA,KAAK,EAAEb,KAAK,CAACS,UAAN,CAAiBI;AADa,KAAD,CAAtC;AAIA,QAAIE,UAAU,GAAGnB,gBAAjB;;AAEA,QAAIkB,aAAJ,EAAmB;AACjB,YAAM;AAAEJ,QAAAA,OAAF;AAAWG,QAAAA;AAAX,UAAqBC,aAAa,CAACL,UAAzC;AAEAM,MAAAA,UAAU,GAAGD,aAAa,GACtB;AAAEE,QAAAA,KAAK,EAAE1C,cAAc,CAACoC,OAAD,EAAUG,KAAK,CAACI,IAAhB;AAAvB,OADsB,GAEtBrB,gBAFJ;AAGD,KA9BuC,CAgCxC;AACA;;;AACA,UAAMsB,kBAAkB,YAAGhB,IAAI,CAACD,CAAC,GAAG,CAAL,CAAP,0CAAG,MAAaQ,UAAxC;AACA,UAAMU,cAAc,aAAGjB,IAAI,CAACD,CAAC,GAAG,CAAL,CAAP,2CAAG,OAAaQ,UAApC;AAEA,UAAM;AACJH,MAAAA,WAAW,EAAEc,mBAAmB,GAAG,IAD/B;AAEJf,MAAAA,UAAU,EAAEgB;AAFR,QAGF,CAAAH,kBAAkB,SAAlB,IAAAA,kBAAkB,WAAlB,YAAAA,kBAAkB,CAAER,OAApB,KAA+B,EAHnC,CArCwC,CA0CxC;AACA;;AACA,UAAMY,mBAAmB,GAAGpB,IAAI,CAACJ,KAAL,CAAWG,CAAC,GAAG,CAAf,EAAkBsB,IAAlB,CAAwBvB,KAAD,IAAW;AAC5D,YAAM;AACJM,QAAAA,WAAW,EAAEkB,kBAAkB,GAAG,IAD9B;AAEJnB,QAAAA,UAAU,EAAEoB;AAFR,UAGF,CAAAzB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAES,UAAP,CAAkBC,OAAlB,KAA6B,EAHjC;AAKA,aAAOc,kBAAkB,KAAK,KAAvB,IAAgCC,iBAAiB,KAAK,QAA7D;AACD,KAP2B,CAA5B;AASA,UAAM;AAAEC,MAAAA,gBAAgB,EAAEC;AAApB,QACJ,CAAAL,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,YAAAA,mBAAmB,CAAEb,UAArB,CAAgCC,OAAhC,KAA2C,EAD7C;AAGA,UAAMkB,cAAc,GACjB,CAACR,mBAAmB,KAAK,KAAxB,IAAiCC,kBAAkB,KAAK,QAAzD,KACC;AACA;AACA,KAACF,cAHH,IAIAG,mBALF;AAOA,UAAMO,KAAuB,GAAG;AAC9BvC,MAAAA,MAD8B;AAE9BwC,MAAAA,IAAI,EAAEf,UAFwB;AAG9BgB,MAAAA,QAAQ,EAAE/B,KAAK,CAAC+B,QAHc;AAI9BrB,MAAAA,OAAO,EAAEV,KAAK,CAACS,UAAN,CAAiBC,OAJI;AAK9BG,MAAAA,KAAK,EAAEb,KAAK,CAACS,UAAN,CAAiBI,KALM;AAM9BmB,MAAAA,UAAU,EAAEhC,KAAK,CAACS,UAAN,CACTuB,UAP2B;AAQ9BC,MAAAA,iBAAiB,EACf7C,IAAI,KAAK,OAAT,GACIwC,cAAc,GACZD,8BAA8B,KAAK,UAAnC,IACAA,8BAA8B,KAAK,mBADnC,GAEE1C,UAFF,GAGE0C,8BAA8B,KAAK,qBAAnC,GACA3C,aADA,GAEAD,YANU,GAOZyB,uBARN,GASI1B;AAlBwB,KAAhC;AAqBA,wBACE,oBAAC,iBAAD,CAAmB,QAAnB;AACE,MAAA,GAAG,EAAEkB,KAAK,CAACS,UAAN,CAAiBI,KAAjB,CAAuBD,GAD9B;AAEE,MAAA,KAAK,EAAEZ,KAAK,CAACS,UAAN,CAAiBuB;AAF1B,oBAIE,oBAAC,sBAAD,CAAwB,QAAxB;AAAiC,MAAA,KAAK,EAAEhC,KAAK,CAACS,UAAN,CAAiBI;AAAzD,oBACE,oBAAC,IAAD;AACE,MAAA,QAAQ,EACNpB,qBAAqB,GAChByC,CAAD,IAAO;AACL,cAAM;AAAEC,UAAAA;AAAF,YAAaD,CAAC,CAACE,WAAF,CAAc9C,MAAjC;AAEAG,QAAAA,qBAAqB,CAAC;AACpBoB,UAAAA,KAAK,EAAEb,KAAK,CAACS,UAAN,CAAiBI,KADJ;AAEpBsB,UAAAA;AAFoB,SAAD,CAArB;AAID,OARgB,GASjBE,SAXR;AAaE,MAAA,aAAa,EAAE1B,SAAS,GAAG,UAAH,GAAgB,MAb1C;AAcE,MAAA,2BAA2B,EAAE,CAACA,SAdhC;AAeE,MAAA,yBAAyB,EACvBA,SAAS,GAAG,MAAH,GAAY,qBAhBzB;AAkBE,MAAA,KAAK,EACH;AACA;AACCvB,MAAAA,IAAI,KAAK,OAAT,IAAoB,CAACuB,SAAtB,IAAoCJ,iBAApC,GACI+B,MAAM,CAAClC,MADX,GAEI;AAvBR,OA0BGA,MAAM,KAAKiC,SAAX,GAAuBjC,MAAM,CAACyB,KAAD,CAA7B,gBAAuC,oBAAC,MAAD,EAAYA,KAAZ,CA1B1C,CADF,CAJF,CADF;AAqCD,GAzHA,CADH,CADF;AA8HD;AAED,MAAMS,MAAM,GAAG1D,UAAU,CAAC2D,MAAX,CAAkB;AAC/BnC,EAAAA,MAAM,EAAE;AACNoC,IAAAA,QAAQ,EAAE,UADJ;AAENC,IAAAA,GAAG,EAAE,CAFC;AAGNC,IAAAA,IAAI,EAAE,CAHA;AAINC,IAAAA,KAAK,EAAE;AAJD;AADuB,CAAlB,CAAf","sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"]}
@@ -65,6 +65,7 @@ export default function HeaderSegment(props) {
65
65
  onGoBack,
66
66
  headerTitle: title,
67
67
  headerLeft: left = onGoBack ? props => /*#__PURE__*/React.createElement(HeaderBackButton, props) : undefined,
68
+ headerRight: right,
68
69
  headerBackImage,
69
70
  headerBackTitle,
70
71
  headerBackTitleVisible = Platform.OS === 'ios',
@@ -107,6 +108,9 @@ export default function HeaderSegment(props) {
107
108
  titleLayout,
108
109
  canGoBack: Boolean(onGoBack)
109
110
  }) : undefined;
111
+ const headerRight = right ? props => right({ ...props,
112
+ canGoBack: Boolean(onGoBack)
113
+ }) : undefined;
110
114
  const headerTitle = typeof title !== 'function' ? props => /*#__PURE__*/React.createElement(HeaderTitle, _extends({}, props, {
111
115
  onLayout: handleTitleLayout
112
116
  })) : props => title({ ...props,
@@ -118,6 +122,7 @@ export default function HeaderSegment(props) {
118
122
  headerTitle: headerTitle,
119
123
  headerLeft: headerLeft,
120
124
  headerLeftLabelVisible: headerBackTitleVisible,
125
+ headerRight: headerRight,
121
126
  headerTitleContainerStyle: [titleStyle, headerTitleContainerStyle],
122
127
  headerLeftContainerStyle: [leftButtonStyle, headerLeftContainerStyle],
123
128
  headerRightContainerStyle: [rightButtonStyle, headerRightContainerStyle],
@@ -1 +1 @@
1
- {"version":3,"sources":["HeaderSegment.tsx"],"names":["getDefaultHeaderHeight","Header","HeaderBackButton","HeaderTitle","React","Platform","StyleSheet","memoize","HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerBackImage","headerBackTitle","headerBackTitleVisible","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"mappings":";;AAAA,SACEA,sBADF,EAEEC,MAFF,EAGEC,gBAHF,EAKEC,WALF,QAMO,4BANP;AAOA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAGEC,QAHF,EAIEC,UAJF,QAMO,cANP;AAcA,OAAOC,OAAP,MAAoB,qBAApB;AAYA,eAAe,SAASC,aAAT,CAAuBC,KAAvB,EAAqC;AAClD,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IACJP,KAAK,CAACQ,QAAN,CAAmCC,SAAnC,CADF;AAGA,QAAM,CAACC,WAAD,EAAcC,cAAd,IACJX,KAAK,CAACQ,QAAN,CAAmCC,SAAnC,CADF;;AAGA,QAAMG,iBAAiB,GAAIC,CAAD,IAA0B;AAClD,UAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAoBF,CAAC,CAACG,WAAF,CAAcC,MAAxC;AAEAN,IAAAA,cAAc,CAAED,WAAD,IAAiB;AAC9B,UACEA,WAAW,IACXI,MAAM,KAAKJ,WAAW,CAACI,MADvB,IAEAC,KAAK,KAAKL,WAAW,CAACK,KAHxB,EAIE;AACA,eAAOL,WAAP;AACD;;AAED,aAAO;AAAEI,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAP;AACD,KAVa,CAAd;AAWD,GAdD;;AAgBA,QAAMG,qBAAqB,GAAIL,CAAD,IAA0B;AACtD,UAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAoBF,CAAC,CAACG,WAAF,CAAcC,MAAxC;;AAEA,QACEX,eAAe,IACfQ,MAAM,KAAKR,eAAe,CAACQ,MAD3B,IAEAC,KAAK,KAAKT,eAAe,CAACS,KAH5B,EAIE;AACA;AACD;;AAEDR,IAAAA,kBAAkB,CAAC;AAAEO,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAD,CAAlB;AACD,GAZD;;AAcA,QAAMI,oBAAoB,GAAGhB,OAAO,CAClC,CACEiB,iBADF,EAEEH,MAFF,EAGEI,OAHF,EAIEC,IAJF,EAKEZ,WALF,EAMEJ,eANF,EAOEiB,YAPF,KASEH,iBAAiB,CAAC;AAChBC,IAAAA,OAAO,EAAE;AAAEG,MAAAA,QAAQ,EAAEH;AAAZ,KADO;AAEhBC,IAAAA,IAAI,EAAEA,IAAI,IAAI;AAAEE,MAAAA,QAAQ,EAAEF;AAAZ,KAFE;AAGhBG,IAAAA,OAAO,EAAE;AACPC,MAAAA,MAAM,EAAE;AACNZ,QAAAA,MAAM,EAAES,YADF;AAENR,QAAAA,KAAK,EAAEE,MAAM,CAACF;AAFR,OADD;AAKPY,MAAAA,MAAM,EAAEV,MALD;AAMPW,MAAAA,KAAK,EAAElB,WANA;AAOPmB,MAAAA,SAAS,EAAEvB;AAPJ;AAHO,GAAD,CAVe,CAApC;AAyBA,QAAM;AACJkB,IAAAA,QADI;AAEJP,IAAAA,MAFI;AAGJa,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,WAAW,EAAEJ,KALT;AAMJK,IAAAA,UAAU,EAAEC,IAAI,GAAGH,QAAQ,GACtB1B,KAAD,iBAAkC,oBAAC,gBAAD,EAAsBA,KAAtB,CADX,GAEvBI,SARA;AASJ0B,IAAAA,eATI;AAUJC,IAAAA,eAVI;AAWJC,IAAAA,sBAAsB,GAAGpC,QAAQ,CAACqC,EAAT,KAAgB,KAXrC;AAYJC,IAAAA,wBAZI;AAaJC,IAAAA,4BAbI;AAcJC,IAAAA,gBAdI;AAeJC,IAAAA,0BAfI;AAgBJC,IAAAA,oBAhBI;AAiBJC,IAAAA,yBAjBI;AAkBJC,IAAAA,wBAlBI;AAmBJC,IAAAA,yBAnBI;AAoBJC,IAAAA,8BApBI;AAqBJC,IAAAA,WAAW,EAAEC,iBArBT;AAsBJC,IAAAA,qBAtBI;AAuBJ9B,IAAAA,iBAvBI;AAwBJ,OAAG+B;AAxBC,MAyBF9C,KAzBJ;AA2BA,QAAM+C,aAAa,GAAGxD,sBAAsB,CAC1CqB,MAD0C,EAE1Ca,KAF0C,EAG1CoB,qBAH0C,CAA5C;AAMA,QAAM;AAAEpC,IAAAA,MAAM,GAAGsC;AAAX,MAA6BlD,UAAU,CAACmD,OAAX,CACjCJ,iBAAiB,IAAI,EADY,CAAnC;AAIA,QAAM;AACJK,IAAAA,UADI;AAEJC,IAAAA,eAFI;AAGJC,IAAAA,cAHI;AAIJC,IAAAA,gBAJI;AAKJC,IAAAA;AALI,MAMFvC,oBAAoB,CACtBC,iBADsB,EAEtBH,MAFsB,EAGtBO,QAAQ,CAACH,OAHa,EAItBG,QAAQ,CAACF,IAJa,EAKtBZ,WALsB,EAMtB0B,eAAe,GAAG9B,eAAH,GAAqBG,SANd,EAOtB,OAAOK,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCsC,aAPhB,CANxB;AAgBA,QAAMnB,UAA4C,GAAGC,IAAI,GACpD7B,KAAD,IACE6B,IAAI,CAAC,EACH,GAAG7B,KADA;AAEHsD,IAAAA,SAAS,EAAExB,eAFR;AAGHyB,IAAAA,kBAAkB,EAAEpB,4BAHjB;AAIHqB,IAAAA,MAAM,EAAEpB,gBAJL;AAKHqB,IAAAA,gBAAgB,EAAEpB,0BALf;AAMHqB,IAAAA,OAAO,EAAEhC,QANN;AAOHiC,IAAAA,KAAK,EAAE5B,eAPJ;AAQH6B,IAAAA,cAAc,EAAE1B,wBARb;AASH2B,IAAAA,UAAU,EAAE,CAACV,cAAD,EAAiBb,oBAAjB,CATT;AAUHwB,IAAAA,aAAa,EAAEjD,qBAVZ;AAWHkD,IAAAA,YAAY,EAAEnD,MAXX;AAYHP,IAAAA,WAZG;AAaH2D,IAAAA,SAAS,EAAEC,OAAO,CAACvC,QAAD;AAbf,GAAD,CAF+C,GAiBrDtB,SAjBJ;AAmBA,QAAMuB,WAA8C,GAClD,OAAOJ,KAAP,KAAiB,UAAjB,GACKvB,KAAD,iBAAW,oBAAC,WAAD,eAAiBA,KAAjB;AAAwB,IAAA,QAAQ,EAAEO;AAAlC,KADf,GAEKP,KAAD,IAAWuB,KAAK,CAAC,EAAE,GAAGvB,KAAL;AAAYkE,IAAAA,QAAQ,EAAE3D;AAAtB,GAAD,CAHtB;AAKA,sBACE,oBAAC,MAAD;AACE,IAAA,KAAK,EAAEkB,KADT;AAEE,IAAA,MAAM,EAAEb,MAFV;AAGE,IAAA,WAAW,EAAEe,WAHf;AAIE,IAAA,UAAU,EAAEC,UAJd;AAKE,IAAA,sBAAsB,EAAEI,sBAL1B;AAME,IAAA,yBAAyB,EAAE,CAACiB,UAAD,EAAaV,yBAAb,CAN7B;AAOE,IAAA,wBAAwB,EAAE,CAACW,eAAD,EAAkBV,wBAAlB,CAP5B;AAQE,IAAA,yBAAyB,EAAE,CAACY,gBAAD,EAAmBX,yBAAnB,CAR7B;AASE,IAAA,8BAA8B,EAAE,CAC9BY,eAD8B,EAE9BX,8BAF8B,CATlC;AAaE,IAAA,WAAW,EAAEE,iBAbf;AAcE,IAAA,qBAAqB,EAAEC;AAdzB,KAeMC,IAfN,EADF;AAmBD","sourcesContent":["import {\n getDefaultHeaderHeight,\n Header,\n HeaderBackButton,\n HeaderBackButtonProps,\n HeaderTitle,\n} from '@react-navigation/elements';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type {\n Layout,\n SceneProgress,\n StackHeaderOptions,\n StackHeaderStyleInterpolator,\n} from '../../types';\nimport memoize from '../../utils/memoize';\n\ntype Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {\n headerStatusBarHeight: number;\n layout: Layout;\n title: string;\n modal: boolean;\n onGoBack?: () => void;\n progress: SceneProgress;\n styleInterpolator: StackHeaderStyleInterpolator;\n};\n\nexport default function HeaderSegment(props: Props) {\n const [leftLabelLayout, setLeftLabelLayout] =\n React.useState<Layout | undefined>(undefined);\n\n const [titleLayout, setTitleLayout] =\n React.useState<Layout | undefined>(undefined);\n\n const handleTitleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setTitleLayout((titleLayout) => {\n if (\n titleLayout &&\n height === titleLayout.height &&\n width === titleLayout.width\n ) {\n return titleLayout;\n }\n\n return { height, width };\n });\n };\n\n const handleLeftLabelLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n if (\n leftLabelLayout &&\n height === leftLabelLayout.height &&\n width === leftLabelLayout.width\n ) {\n return;\n }\n\n setLeftLabelLayout({ height, width });\n };\n\n const getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackHeaderStyleInterpolator,\n layout: Layout,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n titleLayout: Layout | undefined,\n leftLabelLayout: Layout | undefined,\n headerHeight: number\n ) =>\n styleInterpolator({\n current: { progress: current },\n next: next && { progress: next },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width,\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout,\n },\n })\n );\n\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack\n ? (props: HeaderBackButtonProps) => <HeaderBackButton {...props} />\n : undefined,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const { height = defaultHeight } = StyleSheet.flatten(\n customHeaderStyle || {}\n ) as ViewStyle;\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle,\n } = getInterpolatedStyle(\n styleInterpolator,\n layout,\n progress.current,\n progress.next,\n titleLayout,\n headerBackTitle ? leftLabelLayout : undefined,\n typeof height === 'number' ? height : defaultHeight\n );\n\n const headerLeft: StackHeaderOptions['headerLeft'] = left\n ? (props) =>\n left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerTitle: StackHeaderOptions['headerTitle'] =\n typeof title !== 'function'\n ? (props) => <HeaderTitle {...props} onLayout={handleTitleLayout} />\n : (props) => title({ ...props, onLayout: handleTitleLayout });\n\n return (\n <Header\n modal={modal}\n layout={layout}\n headerTitle={headerTitle}\n headerLeft={headerLeft}\n headerLeftLabelVisible={headerBackTitleVisible}\n headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}\n headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}\n headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}\n headerBackgroundContainerStyle={[\n backgroundStyle,\n headerBackgroundContainerStyle,\n ]}\n headerStyle={customHeaderStyle}\n headerStatusBarHeight={headerStatusBarHeight}\n {...rest}\n />\n );\n}\n"]}
1
+ {"version":3,"sources":["HeaderSegment.tsx"],"names":["getDefaultHeaderHeight","Header","HeaderBackButton","HeaderTitle","React","Platform","StyleSheet","memoize","HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerRight","right","headerBackImage","headerBackTitle","headerBackTitleVisible","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"mappings":"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","sourcesContent":["import {\n getDefaultHeaderHeight,\n Header,\n HeaderBackButton,\n HeaderBackButtonProps,\n HeaderTitle,\n} from '@react-navigation/elements';\nimport * as React from 'react';\nimport {\n Animated,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport type {\n Layout,\n SceneProgress,\n StackHeaderOptions,\n StackHeaderStyleInterpolator,\n} from '../../types';\nimport memoize from '../../utils/memoize';\n\ntype Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {\n headerStatusBarHeight: number;\n layout: Layout;\n title: string;\n modal: boolean;\n onGoBack?: () => void;\n progress: SceneProgress;\n styleInterpolator: StackHeaderStyleInterpolator;\n};\n\nexport default function HeaderSegment(props: Props) {\n const [leftLabelLayout, setLeftLabelLayout] = React.useState<\n Layout | undefined\n >(undefined);\n\n const [titleLayout, setTitleLayout] = React.useState<Layout | undefined>(\n undefined\n );\n\n const handleTitleLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n setTitleLayout((titleLayout) => {\n if (\n titleLayout &&\n height === titleLayout.height &&\n width === titleLayout.width\n ) {\n return titleLayout;\n }\n\n return { height, width };\n });\n };\n\n const handleLeftLabelLayout = (e: LayoutChangeEvent) => {\n const { height, width } = e.nativeEvent.layout;\n\n if (\n leftLabelLayout &&\n height === leftLabelLayout.height &&\n width === leftLabelLayout.width\n ) {\n return;\n }\n\n setLeftLabelLayout({ height, width });\n };\n\n const getInterpolatedStyle = memoize(\n (\n styleInterpolator: StackHeaderStyleInterpolator,\n layout: Layout,\n current: Animated.AnimatedInterpolation,\n next: Animated.AnimatedInterpolation | undefined,\n titleLayout: Layout | undefined,\n leftLabelLayout: Layout | undefined,\n headerHeight: number\n ) =>\n styleInterpolator({\n current: { progress: current },\n next: next && { progress: next },\n layouts: {\n header: {\n height: headerHeight,\n width: layout.width,\n },\n screen: layout,\n title: titleLayout,\n leftLabel: leftLabelLayout,\n },\n })\n );\n\n const {\n progress,\n layout,\n modal,\n onGoBack,\n headerTitle: title,\n headerLeft: left = onGoBack\n ? (props: HeaderBackButtonProps) => <HeaderBackButton {...props} />\n : undefined,\n headerRight: right,\n headerBackImage,\n headerBackTitle,\n headerBackTitleVisible = Platform.OS === 'ios',\n headerTruncatedBackTitle,\n headerBackAccessibilityLabel,\n headerBackTestID,\n headerBackAllowFontScaling,\n headerBackTitleStyle,\n headerTitleContainerStyle,\n headerLeftContainerStyle,\n headerRightContainerStyle,\n headerBackgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerStatusBarHeight,\n styleInterpolator,\n ...rest\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const { height = defaultHeight } = StyleSheet.flatten(\n customHeaderStyle || {}\n ) as ViewStyle;\n\n const {\n titleStyle,\n leftButtonStyle,\n leftLabelStyle,\n rightButtonStyle,\n backgroundStyle,\n } = getInterpolatedStyle(\n styleInterpolator,\n layout,\n progress.current,\n progress.next,\n titleLayout,\n headerBackTitle ? leftLabelLayout : undefined,\n typeof height === 'number' ? height : defaultHeight\n );\n\n const headerLeft: StackHeaderOptions['headerLeft'] = left\n ? (props) =>\n left({\n ...props,\n backImage: headerBackImage,\n accessibilityLabel: headerBackAccessibilityLabel,\n testID: headerBackTestID,\n allowFontScaling: headerBackAllowFontScaling,\n onPress: onGoBack,\n label: headerBackTitle,\n truncatedLabel: headerTruncatedBackTitle,\n labelStyle: [leftLabelStyle, headerBackTitleStyle],\n onLabelLayout: handleLeftLabelLayout,\n screenLayout: layout,\n titleLayout,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerRight: StackHeaderOptions['headerRight'] = right\n ? (props) =>\n right({\n ...props,\n canGoBack: Boolean(onGoBack),\n })\n : undefined;\n\n const headerTitle: StackHeaderOptions['headerTitle'] =\n typeof title !== 'function'\n ? (props) => <HeaderTitle {...props} onLayout={handleTitleLayout} />\n : (props) => title({ ...props, onLayout: handleTitleLayout });\n\n return (\n <Header\n modal={modal}\n layout={layout}\n headerTitle={headerTitle}\n headerLeft={headerLeft}\n headerLeftLabelVisible={headerBackTitleVisible}\n headerRight={headerRight}\n headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}\n headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}\n headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}\n headerBackgroundContainerStyle={[\n backgroundStyle,\n headerBackgroundContainerStyle,\n ]}\n headerStyle={customHeaderStyle}\n headerStatusBarHeight={headerStatusBarHeight}\n {...rest}\n />\n );\n}\n"]}
@@ -1,14 +1,15 @@
1
1
  import { useTheme } from '@react-navigation/native';
2
2
  import * as React from 'react';
3
3
  import { StatusBar, StyleSheet } from 'react-native';
4
- export default function ModalStatusBarManager({
5
- dark,
6
- layout,
7
- insets,
8
- style
9
- }) {
4
+ export default function ModalStatusBarManager(_ref) {
10
5
  var _flattenedStyle$trans, _flattenedStyle$trans2;
11
6
 
7
+ let {
8
+ dark,
9
+ layout,
10
+ insets,
11
+ style
12
+ } = _ref;
12
13
  const {
13
14
  dark: darkTheme
14
15
  } = useTheme();
@@ -18,9 +19,10 @@ export default function ModalStatusBarManager({
18
19
  const flattenedStyle = StyleSheet.flatten(style);
19
20
  const translateY = flattenedStyle === null || flattenedStyle === void 0 ? void 0 : (_flattenedStyle$trans = flattenedStyle.transform) === null || _flattenedStyle$trans === void 0 ? void 0 : (_flattenedStyle$trans2 = _flattenedStyle$trans.find(s => s.translateY !== undefined)) === null || _flattenedStyle$trans2 === void 0 ? void 0 : _flattenedStyle$trans2.translateY;
20
21
  React.useEffect(() => {
21
- const listener = ({
22
- value
23
- }) => {
22
+ const listener = _ref2 => {
23
+ let {
24
+ value
25
+ } = _ref2;
24
26
  setOverlapping(value < offset);
25
27
  };
26
28
 
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalStatusBarManager.tsx"],"names":["useTheme","React","StatusBar","StyleSheet","ModalStatusBarManager","dark","layout","insets","style","darkTheme","overlapping","setOverlapping","useState","scale","width","offset","top","flattenedStyle","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent"],"mappings":"AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,SAAT,EAAoBC,UAApB,QAAsC,cAAtC;AAYA,eAAe,SAASC,qBAAT,CAA+B;AAC5CC,EAAAA,IAD4C;AAE5CC,EAAAA,MAF4C;AAG5CC,EAAAA,MAH4C;AAI5CC,EAAAA;AAJ4C,CAA/B,EAKL;AAAA;;AACR,QAAM;AAAEH,IAAAA,IAAI,EAAEI;AAAR,MAAsBT,QAAQ,EAApC;AACA,QAAM,CAACU,WAAD,EAAcC,cAAd,IAAgCV,KAAK,CAACW,QAAN,CAAe,IAAf,CAAtC;AAEA,QAAMC,KAAK,GAAG,IAAI,KAAKP,MAAM,CAACQ,KAA9B;AACA,QAAMC,MAAM,GAAG,CAACR,MAAM,CAACS,GAAP,GAAa,EAAd,IAAoBH,KAAnC;AAEA,QAAMI,cAAc,GAAGd,UAAU,CAACe,OAAX,CAAmBV,KAAnB,CAAvB;AACA,QAAMW,UAAU,GAAGF,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,SAAnB,oFAAG,sBAA2BC,IAA3B,CAChBC,CAAD,IAAYA,CAAC,CAACH,UAAF,KAAiBI,SADZ,CAAH,2DAAG,uBAEhBJ,UAFH;AAIAlB,EAAAA,KAAK,CAACuB,SAAN,CAAgB,MAAM;AACpB,UAAMC,QAAQ,GAAG,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAkC;AACjDf,MAAAA,cAAc,CAACe,KAAK,GAAGX,MAAT,CAAd;AACD,KAFD;;AAIA,UAAMY,GAAG,GAAGR,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAES,WAAZ,CAAwBH,QAAxB,CAAZ;AAEA,WAAO,MAAMN,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEU,cAAZ,CAA2BF,GAA3B,CAAb;AACD,GARD,EAQG,CAACZ,MAAD,EAASI,UAAT,CARH;AAUA,QAAMW,WAAW,GAAGzB,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAW,CAACI,SAA7B;AAEA,sBACE,oBAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,QAAQ,EAAEC,WAAW,IAAIoB,WAAf,GAA6B,cAA7B,GAA8C;AAF1D,IADF;AAMD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StatusBar, StyleSheet } from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport type { Layout } from '../types';\n\ntype Props = {\n dark: boolean | undefined;\n layout: Layout;\n insets: EdgeInsets;\n style: any;\n};\n\nexport default function ModalStatusBarManager({\n dark,\n layout,\n insets,\n style,\n}: Props) {\n const { dark: darkTheme } = useTheme();\n const [overlapping, setOverlapping] = React.useState(true);\n\n const scale = 1 - 20 / layout.width;\n const offset = (insets.top - 34) * scale;\n\n const flattenedStyle = StyleSheet.flatten(style);\n const translateY = flattenedStyle?.transform?.find(\n (s: any) => s.translateY !== undefined\n )?.translateY;\n\n React.useEffect(() => {\n const listener = ({ value }: { value: number }) => {\n setOverlapping(value < offset);\n };\n\n const sub = translateY?.addListener(listener);\n\n return () => translateY?.removeListener(sub);\n }, [offset, translateY]);\n\n const darkContent = dark ?? !darkTheme;\n\n return (\n <StatusBar\n animated\n barStyle={overlapping && darkContent ? 'dark-content' : 'light-content'}\n />\n );\n}\n"]}
1
+ {"version":3,"sources":["ModalStatusBarManager.tsx"],"names":["useTheme","React","StatusBar","StyleSheet","ModalStatusBarManager","dark","layout","insets","style","darkTheme","overlapping","setOverlapping","useState","scale","width","offset","top","flattenedStyle","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent"],"mappings":"AAAA,SAASA,QAAT,QAAyB,0BAAzB;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,SAAT,EAAoBC,UAApB,QAAsC,cAAtC;AAYA,eAAe,SAASC,qBAAT,OAKL;AAAA;;AAAA,MALoC;AAC5CC,IAAAA,IAD4C;AAE5CC,IAAAA,MAF4C;AAG5CC,IAAAA,MAH4C;AAI5CC,IAAAA;AAJ4C,GAKpC;AACR,QAAM;AAAEH,IAAAA,IAAI,EAAEI;AAAR,MAAsBT,QAAQ,EAApC;AACA,QAAM,CAACU,WAAD,EAAcC,cAAd,IAAgCV,KAAK,CAACW,QAAN,CAAe,IAAf,CAAtC;AAEA,QAAMC,KAAK,GAAG,IAAI,KAAKP,MAAM,CAACQ,KAA9B;AACA,QAAMC,MAAM,GAAG,CAACR,MAAM,CAACS,GAAP,GAAa,EAAd,IAAoBH,KAAnC;AAEA,QAAMI,cAAc,GAAGd,UAAU,CAACe,OAAX,CAAmBV,KAAnB,CAAvB;AACA,QAAMW,UAAU,GAAGF,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,SAAnB,oFAAG,sBAA2BC,IAA3B,CAChBC,CAAD,IAAYA,CAAC,CAACH,UAAF,KAAiBI,SADZ,CAAH,2DAAG,uBAEhBJ,UAFH;AAIAlB,EAAAA,KAAK,CAACuB,SAAN,CAAgB,MAAM;AACpB,UAAMC,QAAQ,GAAG,SAAkC;AAAA,UAAjC;AAAEC,QAAAA;AAAF,OAAiC;AACjDf,MAAAA,cAAc,CAACe,KAAK,GAAGX,MAAT,CAAd;AACD,KAFD;;AAIA,UAAMY,GAAG,GAAGR,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAES,WAAZ,CAAwBH,QAAxB,CAAZ;AAEA,WAAO,MAAMN,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEU,cAAZ,CAA2BF,GAA3B,CAAb;AACD,GARD,EAQG,CAACZ,MAAD,EAASI,UAAT,CARH;AAUA,QAAMW,WAAW,GAAGzB,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAW,CAACI,SAA7B;AAEA,sBACE,oBAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,QAAQ,EAAEC,WAAW,IAAIoB,WAAf,GAA6B,cAA7B,GAA8C;AAF1D,IADF;AAMD","sourcesContent":["import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { StatusBar, StyleSheet } from 'react-native';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\n\nimport type { Layout } from '../types';\n\ntype Props = {\n dark: boolean | undefined;\n layout: Layout;\n insets: EdgeInsets;\n style: any;\n};\n\nexport default function ModalStatusBarManager({\n dark,\n layout,\n insets,\n style,\n}: Props) {\n const { dark: darkTheme } = useTheme();\n const [overlapping, setOverlapping] = React.useState(true);\n\n const scale = 1 - 20 / layout.width;\n const offset = (insets.top - 34) * scale;\n\n const flattenedStyle = StyleSheet.flatten(style);\n const translateY = flattenedStyle?.transform?.find(\n (s: any) => s.translateY !== undefined\n )?.translateY;\n\n React.useEffect(() => {\n const listener = ({ value }: { value: number }) => {\n setOverlapping(value < offset);\n };\n\n const sub = translateY?.addListener(listener);\n\n return () => translateY?.removeListener(sub);\n }, [offset, translateY]);\n\n const darkContent = dark ?? !darkTheme;\n\n return (\n <StatusBar\n animated\n barStyle={overlapping && darkContent ? 'dark-content' : 'light-content'}\n />\n );\n}\n"]}
@@ -9,10 +9,12 @@ try {
9
9
  } catch (e) {// Ignore
10
10
  }
11
11
 
12
- export const MaybeScreenContainer = ({
13
- enabled,
14
- ...rest
15
- }) => {
12
+ export const MaybeScreenContainer = _ref => {
13
+ let {
14
+ enabled,
15
+ ...rest
16
+ } = _ref;
17
+
16
18
  if (Screens != null) {
17
19
  return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({
18
20
  enabled: enabled
@@ -21,11 +23,13 @@ export const MaybeScreenContainer = ({
21
23
 
22
24
  return /*#__PURE__*/React.createElement(View, rest);
23
25
  };
24
- export const MaybeScreen = ({
25
- enabled,
26
- active,
27
- ...rest
28
- }) => {
26
+ export const MaybeScreen = _ref2 => {
27
+ let {
28
+ enabled,
29
+ active,
30
+ ...rest
31
+ } = _ref2;
32
+
29
33
  if (Screens != null) {
30
34
  return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
31
35
  enabled: enabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["Screens.tsx"],"names":["React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","MaybeScreen","active"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAmBC,IAAnB,QAA0C,cAA1C;AAEA,IAAIC,OAAJ;;AAEA,IAAI;AACFA,EAAAA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,OAAO,MAAMC,oBAAoB,GAAG,CAAC;AACnCC,EAAAA,OADmC;AAEnC,KAAGC;AAFgC,CAAD,KAM9B;AACJ,MAAIL,OAAO,IAAI,IAAf,EAAqB;AACnB,wBAAO,oBAAC,OAAD,CAAS,eAAT;AAAyB,MAAA,OAAO,EAAEI;AAAlC,OAA+CC,IAA/C,EAAP;AACD;;AAED,sBAAO,oBAAC,IAAD,EAAUA,IAAV,CAAP;AACD,CAZM;AAcP,OAAO,MAAMC,WAAW,GAAG,CAAC;AAC1BF,EAAAA,OAD0B;AAE1BG,EAAAA,MAF0B;AAG1B,KAAGF;AAHuB,CAAD,KAQrB;AACJ,MAAIL,OAAO,IAAI,IAAf,EAAqB;AACnB,wBACE,oBAAC,OAAD,CAAS,MAAT;AAAgB,MAAA,OAAO,EAAEI,OAAzB;AAAkC,MAAA,aAAa,EAAEG;AAAjD,OAA6DF,IAA7D,EADF;AAGD;;AAED,sBAAO,oBAAC,IAAD,EAAUA,IAAV,CAAP;AACD,CAhBM","sourcesContent":["import * as React from 'react';\nimport { Animated, View, ViewProps } from 'react-native';\n\nlet Screens: typeof import('react-native-screens') | undefined;\n\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\n\nexport const MaybeScreenContainer = ({\n enabled,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return <Screens.ScreenContainer enabled={enabled} {...rest} />;\n }\n\n return <View {...rest} />;\n};\n\nexport const MaybeScreen = ({\n enabled,\n active,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n active: 0 | 1 | Animated.AnimatedInterpolation;\n children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return (\n <Screens.Screen enabled={enabled} activityState={active} {...rest} />\n );\n }\n\n return <View {...rest} />;\n};\n"]}
1
+ {"version":3,"sources":["Screens.tsx"],"names":["React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","MaybeScreen","active"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAAmBC,IAAnB,QAA0C,cAA1C;AAEA,IAAIC,OAAJ;;AAEA,IAAI;AACFA,EAAAA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAED,OAAO,MAAMC,oBAAoB,GAAG,QAM9B;AAAA,MAN+B;AACnCC,IAAAA,OADmC;AAEnC,OAAGC;AAFgC,GAM/B;;AACJ,MAAIL,OAAO,IAAI,IAAf,EAAqB;AACnB,wBAAO,oBAAC,OAAD,CAAS,eAAT;AAAyB,MAAA,OAAO,EAAEI;AAAlC,OAA+CC,IAA/C,EAAP;AACD;;AAED,sBAAO,oBAAC,IAAD,EAAUA,IAAV,CAAP;AACD,CAZM;AAcP,OAAO,MAAMC,WAAW,GAAG,SAQrB;AAAA,MARsB;AAC1BF,IAAAA,OAD0B;AAE1BG,IAAAA,MAF0B;AAG1B,OAAGF;AAHuB,GAQtB;;AACJ,MAAIL,OAAO,IAAI,IAAf,EAAqB;AACnB,wBACE,oBAAC,OAAD,CAAS,MAAT;AAAgB,MAAA,OAAO,EAAEI,OAAzB;AAAkC,MAAA,aAAa,EAAEG;AAAjD,OAA6DF,IAA7D,EADF;AAGD;;AAED,sBAAO,oBAAC,IAAD,EAAUA,IAAV,CAAP;AACD,CAhBM","sourcesContent":["import * as React from 'react';\nimport { Animated, View, ViewProps } from 'react-native';\n\nlet Screens: typeof import('react-native-screens') | undefined;\n\ntry {\n Screens = require('react-native-screens');\n} catch (e) {\n // Ignore\n}\n\nexport const MaybeScreenContainer = ({\n enabled,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return <Screens.ScreenContainer enabled={enabled} {...rest} />;\n }\n\n return <View {...rest} />;\n};\n\nexport const MaybeScreen = ({\n enabled,\n active,\n ...rest\n}: ViewProps & {\n enabled: boolean;\n active: 0 | 1 | Animated.AnimatedInterpolation;\n children: React.ReactNode;\n}) => {\n if (Screens != null) {\n return (\n <Screens.Screen enabled={enabled} activityState={active} {...rest} />\n );\n }\n\n return <View {...rest} />;\n};\n"]}
@@ -34,8 +34,8 @@ const hasOpacityStyle = style => {
34
34
  };
35
35
 
36
36
  export default class Card extends React.Component {
37
- constructor(...args) {
38
- super(...args);
37
+ constructor() {
38
+ super(...arguments);
39
39
 
40
40
  _defineProperty(this, "isCurrentlyMounted", false);
41
41
 
@@ -56,10 +56,11 @@ export default class Card extends React.Component {
56
56
 
57
57
  _defineProperty(this, "lastToValue", void 0);
58
58
 
59
- _defineProperty(this, "animate", ({
60
- closing,
61
- velocity
62
- }) => {
59
+ _defineProperty(this, "animate", _ref => {
60
+ let {
61
+ closing,
62
+ velocity
63
+ } = _ref;
63
64
  const {
64
65
  gesture,
65
66
  transitionSpec,
@@ -86,9 +87,10 @@ export default class Card extends React.Component {
86
87
  toValue,
87
88
  useNativeDriver,
88
89
  isInteraction: false
89
- }).start(({
90
- finished
91
- }) => {
90
+ }).start(_ref2 => {
91
+ let {
92
+ finished
93
+ } = _ref2;
92
94
  this.handleEndInteraction();
93
95
  clearTimeout(this.pendingGestureCallback);
94
96
 
@@ -107,11 +109,13 @@ export default class Card extends React.Component {
107
109
  });
108
110
  });
109
111
 
110
- _defineProperty(this, "getAnimateToValue", ({
111
- closing,
112
- layout,
113
- gestureDirection
114
- }) => {
112
+ _defineProperty(this, "getAnimateToValue", _ref3 => {
113
+ let {
114
+ closing,
115
+ layout,
116
+ gestureDirection
117
+ } = _ref3;
118
+
115
119
  if (!closing) {
116
120
  return 0;
117
121
  }
@@ -141,9 +145,10 @@ export default class Card extends React.Component {
141
145
  }
142
146
  });
143
147
 
144
- _defineProperty(this, "handleGestureStateChange", ({
145
- nativeEvent
146
- }) => {
148
+ _defineProperty(this, "handleGestureStateChange", _ref4 => {
149
+ let {
150
+ nativeEvent
151
+ } = _ref4;
147
152
  const {
148
153
  layout,
149
154
  onClose,
@@ -155,7 +160,7 @@ export default class Card extends React.Component {
155
160
  } = this.props;
156
161
 
157
162
  switch (nativeEvent.state) {
158
- case GestureState.BEGAN:
163
+ case GestureState.ACTIVE:
159
164
  this.isSwiping.setValue(TRUE);
160
165
  this.handleStartInteraction();
161
166
  onGestureBegin === null || onGestureBegin === void 0 ? void 0 : onGestureBegin();
@@ -441,12 +446,15 @@ _defineProperty(Card, "defaultProps", {
441
446
  shadowEnabled: false,
442
447
  gestureEnabled: true,
443
448
  gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,
444
- overlay: ({
445
- style
446
- }) => style ? /*#__PURE__*/React.createElement(Animated.View, {
447
- pointerEvents: "none",
448
- style: [styles.overlay, style]
449
- }) : null
449
+ overlay: _ref5 => {
450
+ let {
451
+ style
452
+ } = _ref5;
453
+ return style ? /*#__PURE__*/React.createElement(Animated.View, {
454
+ pointerEvents: "none",
455
+ style: [styles.overlay, style]
456
+ }) : null;
457
+ }
450
458
  });
451
459
 
452
460
  export const getIsModalPresentation = cardStyleInterpolator => {