@react-navigation/stack 6.0.11 → 6.1.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 (79) 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 +8 -7
  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 +19 -11
  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 +8 -7
  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 +19 -11
  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/types.d.ts +6 -2
  73. package/package.json +9 -9
  74. package/src/index.tsx +1 -0
  75. package/src/types.tsx +6 -1
  76. package/src/views/Header/HeaderSegment.tsx +16 -4
  77. package/src/views/Stack/Card.tsx +1 -1
  78. package/src/views/Stack/CardContainer.tsx +3 -2
  79. package/src/views/Stack/CardStack.tsx +6 -1
@@ -7,8 +7,12 @@ exports.default = debounce;
7
7
 
8
8
  function debounce(func, duration) {
9
9
  let timeout;
10
- return function (...args) {
10
+ return function () {
11
11
  if (!timeout) {
12
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13
+ args[_key] = arguments[_key];
14
+ }
15
+
12
16
  // eslint-disable-next-line babel/no-invalid-this
13
17
  func.apply(this, args);
14
18
  timeout = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["debounce.tsx"],"names":["debounce","func","duration","timeout","args","apply","setTimeout","undefined"],"mappings":";;;;;;;AAAe,SAASA,QAAT,CACbC,IADa,EAEbC,QAFa,EAGV;AACH,MAAIC,OAAJ;AAEA,SAAO,UAAqB,GAAGC,IAAxB,EAA8B;AACnC,QAAI,CAACD,OAAL,EAAc;AACZ;AACAF,MAAAA,IAAI,CAACI,KAAL,CAAW,IAAX,EAAiBD,IAAjB;AAEAD,MAAAA,OAAO,GAAGG,UAAU,CAAC,MAAM;AACzBH,QAAAA,OAAO,GAAGI,SAAV;AACD,OAFmB,EAEjBL,QAFiB,CAApB;AAGD;AACF,GATD;AAUD","sourcesContent":["export default function debounce<T extends (...args: any[]) => void>(\n func: T,\n duration: number\n): T {\n let timeout: NodeJS.Timeout | number | undefined;\n\n return function (this: any, ...args) {\n if (!timeout) {\n // eslint-disable-next-line babel/no-invalid-this\n func.apply(this, args);\n\n timeout = setTimeout(() => {\n timeout = undefined;\n }, duration);\n }\n } as T;\n}\n"]}
1
+ {"version":3,"sources":["debounce.tsx"],"names":["debounce","func","duration","timeout","args","apply","setTimeout","undefined"],"mappings":";;;;;;;AAAe,SAASA,QAAT,CACbC,IADa,EAEbC,QAFa,EAGV;AACH,MAAIC,OAAJ;AAEA,SAAO,YAA8B;AACnC,QAAI,CAACA,OAAL,EAAc;AAAA,wCADeC,IACf;AADeA,QAAAA,IACf;AAAA;;AACZ;AACAH,MAAAA,IAAI,CAACI,KAAL,CAAW,IAAX,EAAiBD,IAAjB;AAEAD,MAAAA,OAAO,GAAGG,UAAU,CAAC,MAAM;AACzBH,QAAAA,OAAO,GAAGI,SAAV;AACD,OAFmB,EAEjBL,QAFiB,CAApB;AAGD;AACF,GATD;AAUD","sourcesContent":["export default function debounce<T extends (...args: any[]) => void>(\n func: T,\n duration: number\n): T {\n let timeout: NodeJS.Timeout | number | undefined;\n\n return function (this: any, ...args) {\n if (!timeout) {\n // eslint-disable-next-line babel/no-invalid-this\n func.apply(this, args);\n\n timeout = setTimeout(() => {\n timeout = undefined;\n }, duration);\n }\n } as T;\n}\n"]}
@@ -8,9 +8,13 @@ exports.default = memoize;
8
8
  function memoize(callback) {
9
9
  let previous;
10
10
  let result;
11
- return (...dependencies) => {
11
+ return function () {
12
12
  let hasChanged = false;
13
13
 
14
+ for (var _len = arguments.length, dependencies = new Array(_len), _key = 0; _key < _len; _key++) {
15
+ dependencies[_key] = arguments[_key];
16
+ }
17
+
14
18
  if (previous) {
15
19
  if (previous.length !== dependencies.length) {
16
20
  hasChanged = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["memoize.tsx"],"names":["memoize","callback","previous","result","dependencies","hasChanged","length","i","undefined"],"mappings":";;;;;;;AAAe,SAASA,OAAT,CACbC,QADa,EAEb;AACA,MAAIC,QAAJ;AACA,MAAIC,MAAJ;AAEA,SAAO,CAAC,GAAGC,YAAJ,KAAmC;AACxC,QAAIC,UAAU,GAAG,KAAjB;;AAEA,QAAIH,QAAJ,EAAc;AACZ,UAAIA,QAAQ,CAACI,MAAT,KAAoBF,YAAY,CAACE,MAArC,EAA6C;AAC3CD,QAAAA,UAAU,GAAG,IAAb;AACD,OAFD,MAEO;AACL,aAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,QAAQ,CAACI,MAA7B,EAAqCC,CAAC,EAAtC,EAA0C;AACxC,cAAIL,QAAQ,CAACK,CAAD,CAAR,KAAgBH,YAAY,CAACG,CAAD,CAAhC,EAAqC;AACnCF,YAAAA,UAAU,GAAG,IAAb;AACA;AACD;AACF;AACF;AACF,KAXD,MAWO;AACLA,MAAAA,UAAU,GAAG,IAAb;AACD;;AAEDH,IAAAA,QAAQ,GAAGE,YAAX;;AAEA,QAAIC,UAAU,IAAIF,MAAM,KAAKK,SAA7B,EAAwC;AACtCL,MAAAA,MAAM,GAAGF,QAAQ,CAAC,GAAGG,YAAJ,CAAjB;AACD;;AAED,WAAOD,MAAP;AACD,GAzBD;AA0BD","sourcesContent":["export default function memoize<Result, Deps extends readonly any[]>(\n callback: (...deps: Deps) => Result\n) {\n let previous: Deps | undefined;\n let result: Result | undefined;\n\n return (...dependencies: Deps): Result => {\n let hasChanged = false;\n\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n\n previous = dependencies;\n\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n\n return result;\n };\n}\n"]}
1
+ {"version":3,"sources":["memoize.tsx"],"names":["memoize","callback","previous","result","hasChanged","dependencies","length","i","undefined"],"mappings":";;;;;;;AAAe,SAASA,OAAT,CACbC,QADa,EAEb;AACA,MAAIC,QAAJ;AACA,MAAIC,MAAJ;AAEA,SAAO,YAAmC;AACxC,QAAIC,UAAU,GAAG,KAAjB;;AADwC,sCAA/BC,YAA+B;AAA/BA,MAAAA,YAA+B;AAAA;;AAGxC,QAAIH,QAAJ,EAAc;AACZ,UAAIA,QAAQ,CAACI,MAAT,KAAoBD,YAAY,CAACC,MAArC,EAA6C;AAC3CF,QAAAA,UAAU,GAAG,IAAb;AACD,OAFD,MAEO;AACL,aAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,QAAQ,CAACI,MAA7B,EAAqCC,CAAC,EAAtC,EAA0C;AACxC,cAAIL,QAAQ,CAACK,CAAD,CAAR,KAAgBF,YAAY,CAACE,CAAD,CAAhC,EAAqC;AACnCH,YAAAA,UAAU,GAAG,IAAb;AACA;AACD;AACF;AACF;AACF,KAXD,MAWO;AACLA,MAAAA,UAAU,GAAG,IAAb;AACD;;AAEDF,IAAAA,QAAQ,GAAGG,YAAX;;AAEA,QAAID,UAAU,IAAID,MAAM,KAAKK,SAA7B,EAAwC;AACtCL,MAAAA,MAAM,GAAGF,QAAQ,CAAC,GAAGI,YAAJ,CAAjB;AACD;;AAED,WAAOF,MAAP;AACD,GAzBD;AA0BD","sourcesContent":["export default function memoize<Result, Deps extends readonly any[]>(\n callback: (...deps: Deps) => Result\n) {\n let previous: Deps | undefined;\n let result: Result | undefined;\n\n return (...dependencies: Deps): Result => {\n let hasChanged = false;\n\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n\n previous = dependencies;\n\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n\n return result;\n };\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.GestureState = exports.GestureHandlerRootView = exports.PanGestureHandler = void 0;
6
+ exports.PanGestureHandler = exports.GestureState = exports.GestureHandlerRootView = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -13,9 +13,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
13
13
 
14
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
15
 
16
- const Dummy = ({
17
- children
18
- }) => /*#__PURE__*/React.createElement(React.Fragment, null, children);
16
+ const Dummy = _ref => {
17
+ let {
18
+ children
19
+ } = _ref;
20
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children);
21
+ };
19
22
 
20
23
  const PanGestureHandler = Dummy;
21
24
  exports.PanGestureHandler = PanGestureHandler;
@@ -1 +1 @@
1
- {"version":3,"sources":["GestureHandler.tsx"],"names":["Dummy","children","PanGestureHandler","GestureHandlerRootView","View","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAGA,MAAMA,KAAU,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,kBACjB,0CAAGA,QAAH,CADF;;AAIO,MAAMC,iBAAiB,GAC5BF,KADK;;AAGA,MAAMG,sBAAsB,GAAGC,iBAA/B;;AAEA,MAAMC,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":["Dummy","children","PanGestureHandler","GestureHandlerRootView","View","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAGA,MAAMA,KAAU,GAAG;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,sBACjB,0CAAGA,QAAH,CADiB;AAAA,CAAnB;;AAIO,MAAMC,iBAAiB,GAC5BF,KADK;;AAGA,MAAMG,sBAAsB,GAAGC,iBAA/B;;AAEA,MAAMC,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"]}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PanGestureHandler = PanGestureHandler;
7
6
  Object.defineProperty(exports, "GestureHandlerRootView", {
8
7
  enumerable: true,
9
8
  get: function () {
@@ -16,6 +15,7 @@ Object.defineProperty(exports, "GestureState", {
16
15
  return _reactNativeGestureHandler.State;
17
16
  }
18
17
  });
18
+ exports.PanGestureHandler = PanGestureHandler;
19
19
  Object.defineProperty(exports, "PanGestureHandlerGestureEvent", {
20
20
  enumerable: true,
21
21
  get: function () {
@@ -27,15 +27,16 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
27
27
 
28
28
  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); }
29
29
 
30
- var _default = /*#__PURE__*/React.memo(function Header({
31
- back,
32
- layout,
33
- progress,
34
- options,
35
- route,
36
- navigation,
37
- styleInterpolator
38
- }) {
30
+ var _default = /*#__PURE__*/React.memo(function Header(_ref) {
31
+ let {
32
+ back,
33
+ layout,
34
+ progress,
35
+ options,
36
+ route,
37
+ navigation,
38
+ styleInterpolator
39
+ } = _ref;
39
40
  const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
40
41
  let previousTitle; // The label for the left back button shows the title of the previous screen
41
42
  // If a custom label is specified, we use it, otherwise use previous screen's title
@@ -1 +1 @@
1
- {"version":3,"sources":["Header.tsx"],"names":["React","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","StackActions","pop","source","key","isModal","useContext","ModalPresentationContext","isParentHeaderShown","HeaderShownContext","statusBarHeight","headerStatusBarHeight","top","name"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;;;4BAEeA,KAAK,CAACC,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,GAAG,oDAAf;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,GAAGf,KAAK,CAACgB,WAAN,CACb,uBAAS,MAAM;AACb,QAAIR,UAAU,CAACS,SAAX,MAA0BT,UAAU,CAACU,SAAX,EAA9B,EAAsD;AACpDV,MAAAA,UAAU,CAACW,QAAX,CAAoB,EAClB,GAAGC,qBAAaC,GAAb,EADe;AAElBC,QAAAA,MAAM,EAAEf,KAAK,CAACgB;AAFI,OAApB;AAID;AACF,GAPD,EAOG,EAPH,CADa,EASb,CAACf,UAAD,EAAaD,KAAK,CAACgB,GAAnB,CATa,CAAf;AAYA,QAAMC,OAAO,GAAGxB,KAAK,CAACyB,UAAN,CAAiBC,iCAAjB,CAAhB;AACA,QAAMC,mBAAmB,GAAG3B,KAAK,CAACyB,UAAN,CAAiBG,4BAAjB,CAA5B;AAEA,QAAMC,eAAe,GACnBvB,OAAO,CAACwB,qBAAR,KAAkCjB,SAAlC,GACIP,OAAO,CAACwB,qBADZ,GAEIN,OAAO,IAAIG,mBAAX,GACA,CADA,GAEAjB,MAAM,CAACqB,GALb;AAOA,sBACE,oBAAC,sBAAD,eACMzB,OADN;AAEE,IAAA,KAAK,EAAE,8BAAeA,OAAf,EAAwBC,KAAK,CAACyB,IAA9B,CAFT;AAGE,IAAA,QAAQ,EAAE3B,QAHZ;AAIE,IAAA,MAAM,EAAED,MAJV;AAKE,IAAA,KAAK,EAAEoB,OALT;AAME,IAAA,eAAe,EACblB,OAAO,CAACM,eAAR,KAA4BC,SAA5B,GACIP,OAAO,CAACM,eADZ,GAEID,aATR;AAWE,IAAA,qBAAqB,EAAEkB,eAXzB;AAYE,IAAA,QAAQ,EAAE1B,IAAI,GAAGY,MAAH,GAAYF,SAZ5B;AAaE,IAAA,iBAAiB,EAAEJ;AAbrB,KADF;AAiBD,CA7Dc,C","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":["React","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","StackActions","pop","source","key","isModal","useContext","ModalPresentationContext","isParentHeaderShown","HeaderShownContext","statusBarHeight","headerStatusBarHeight","top","name"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;;;4BAEeA,KAAK,CAACC,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,GAAG,oDAAf;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,GAAGf,KAAK,CAACgB,WAAN,CACb,uBAAS,MAAM;AACb,QAAIR,UAAU,CAACS,SAAX,MAA0BT,UAAU,CAACU,SAAX,EAA9B,EAAsD;AACpDV,MAAAA,UAAU,CAACW,QAAX,CAAoB,EAClB,GAAGC,qBAAaC,GAAb,EADe;AAElBC,QAAAA,MAAM,EAAEf,KAAK,CAACgB;AAFI,OAApB;AAID;AACF,GAPD,EAOG,EAPH,CADa,EASb,CAACf,UAAD,EAAaD,KAAK,CAACgB,GAAnB,CATa,CAAf;AAYA,QAAMC,OAAO,GAAGxB,KAAK,CAACyB,UAAN,CAAiBC,iCAAjB,CAAhB;AACA,QAAMC,mBAAmB,GAAG3B,KAAK,CAACyB,UAAN,CAAiBG,4BAAjB,CAA5B;AAEA,QAAMC,eAAe,GACnBvB,OAAO,CAACwB,qBAAR,KAAkCjB,SAAlC,GACIP,OAAO,CAACwB,qBADZ,GAEIN,OAAO,IAAIG,mBAAX,GACA,CADA,GAEAjB,MAAM,CAACqB,GALb;AAOA,sBACE,oBAAC,sBAAD,eACMzB,OADN;AAEE,IAAA,KAAK,EAAE,8BAAeA,OAAf,EAAwBC,KAAK,CAACyB,IAA9B,CAFT;AAGE,IAAA,QAAQ,EAAE3B,QAHZ;AAIE,IAAA,MAAM,EAAED,MAJV;AAKE,IAAA,KAAK,EAAEoB,OALT;AAME,IAAA,eAAe,EACblB,OAAO,CAACM,eAAR,KAA4BC,SAA5B,GACIP,OAAO,CAACM,eADZ,GAEID,aATR;AAWE,IAAA,qBAAqB,EAAEkB,eAXzB;AAYE,IAAA,QAAQ,EAAE1B,IAAI,GAAGY,MAAH,GAAYF,SAZ5B;AAaE,IAAA,iBAAiB,EAAEJ;AAbrB,KADF;AAiBD,CA7Dc,C","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"]}
@@ -23,15 +23,16 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
23
 
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
 
26
- function HeaderContainer({
27
- mode,
28
- scenes,
29
- layout,
30
- getPreviousScene,
31
- getFocusedRoute,
32
- onContentHeightChange,
33
- style
34
- }) {
26
+ function HeaderContainer(_ref) {
27
+ let {
28
+ mode,
29
+ scenes,
30
+ layout,
31
+ getPreviousScene,
32
+ getFocusedRoute,
33
+ onContentHeightChange,
34
+ style
35
+ } = _ref;
35
36
  const focusedRoute = getFocusedRoute();
36
37
  const parentHeaderBack = React.useContext(_elements.HeaderBackContext);
37
38
  return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
@@ -1 +1 @@
1
- {"version":3,"sources":["HeaderContainer.tsx"],"names":["HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","React","useContext","HeaderBackContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","forSlideUp","forSlideRight","forSlideLeft","forNoAnimation","e","height","nativeEvent","undefined","styles","StyleSheet","create","position","top","left","right"],"mappings":"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","sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"]}
1
+ {"version":3,"sources":["HeaderContainer.tsx"],"names":["HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","React","useContext","HeaderBackContext","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","forSlideUp","forSlideRight","forSlideLeft","forNoAnimation","e","height","nativeEvent","undefined","styles","StyleSheet","create","position","top","left","right"],"mappings":"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","sourcesContent":["import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';\nimport {\n NavigationContext,\n NavigationRouteContext,\n ParamListBase,\n Route,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport {\n forNoAnimation,\n forSlideLeft,\n forSlideRight,\n forSlideUp,\n} from '../../TransitionConfigs/HeaderStyleInterpolators';\nimport type {\n Layout,\n Scene,\n StackHeaderMode,\n StackHeaderProps,\n StackNavigationProp,\n} from '../../types';\nimport Header from './Header';\n\nexport type Props = {\n mode: StackHeaderMode;\n layout: Layout;\n scenes: (Scene | undefined)[];\n getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;\n getFocusedRoute: () => Route<string>;\n onContentHeightChange?: (props: {\n route: Route<string>;\n height: number;\n }) => void;\n style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n};\n\nexport default function HeaderContainer({\n mode,\n scenes,\n layout,\n getPreviousScene,\n getFocusedRoute,\n onContentHeightChange,\n style,\n}: Props) {\n const focusedRoute = getFocusedRoute();\n const parentHeaderBack = React.useContext(HeaderBackContext);\n\n return (\n <Animated.View pointerEvents=\"box-none\" style={style}>\n {scenes.slice(-3).map((scene, i, self) => {\n if ((mode === 'screen' && i !== self.length - 1) || !scene) {\n return null;\n }\n\n const {\n header,\n headerMode,\n headerShown = true,\n headerTransparent,\n headerStyleInterpolator,\n } = scene.descriptor.options;\n\n if (headerMode !== mode || !headerShown) {\n return null;\n }\n\n const isFocused = focusedRoute.key === scene.descriptor.route.key;\n const previousScene = getPreviousScene({\n route: scene.descriptor.route,\n });\n\n let headerBack = parentHeaderBack;\n\n if (previousScene) {\n const { options, route } = previousScene.descriptor;\n\n headerBack = previousScene\n ? { title: getHeaderTitle(options, route.name) }\n : parentHeaderBack;\n }\n\n // If the screen is next to a headerless screen, we need to make the header appear static\n // This makes the header look like it's moving with the screen\n const previousDescriptor = self[i - 1]?.descriptor;\n const nextDescriptor = self[i + 1]?.descriptor;\n\n const {\n headerShown: previousHeaderShown = true,\n headerMode: previousHeaderMode,\n } = previousDescriptor?.options || {};\n\n // If any of the next screens don't have a header or header is part of the screen\n // Then we need to move this header offscreen so that it doesn't cover it\n const nextHeaderlessScene = self.slice(i + 1).find((scene) => {\n const {\n headerShown: currentHeaderShown = true,\n headerMode: currentHeaderMode,\n } = scene?.descriptor.options || {};\n\n return currentHeaderShown === false || currentHeaderMode === 'screen';\n });\n\n const { gestureDirection: nextHeaderlessGestureDirection } =\n nextHeaderlessScene?.descriptor.options || {};\n\n const isHeaderStatic =\n ((previousHeaderShown === false || previousHeaderMode === 'screen') &&\n // We still need to animate when coming back from next scene\n // A hacky way to check this is if the next scene exists\n !nextDescriptor) ||\n nextHeaderlessScene;\n\n const props: StackHeaderProps = {\n layout,\n back: headerBack,\n progress: scene.progress,\n options: scene.descriptor.options,\n route: scene.descriptor.route,\n navigation: scene.descriptor\n .navigation as StackNavigationProp<ParamListBase>,\n styleInterpolator:\n mode === 'float'\n ? isHeaderStatic\n ? nextHeaderlessGestureDirection === 'vertical' ||\n nextHeaderlessGestureDirection === 'vertical-inverted'\n ? forSlideUp\n : nextHeaderlessGestureDirection === 'horizontal-inverted'\n ? forSlideRight\n : forSlideLeft\n : headerStyleInterpolator\n : forNoAnimation,\n };\n\n return (\n <NavigationContext.Provider\n key={scene.descriptor.route.key}\n value={scene.descriptor.navigation}\n >\n <NavigationRouteContext.Provider value={scene.descriptor.route}>\n <View\n onLayout={\n onContentHeightChange\n ? (e) => {\n const { height } = e.nativeEvent.layout;\n\n onContentHeightChange({\n route: scene.descriptor.route,\n height,\n });\n }\n : undefined\n }\n pointerEvents={isFocused ? 'box-none' : 'none'}\n accessibilityElementsHidden={!isFocused}\n importantForAccessibility={\n isFocused ? 'auto' : 'no-hide-descendants'\n }\n style={\n // Avoid positioning the focused header absolutely\n // Otherwise accessibility tools don't seem to be able to find it\n (mode === 'float' && !isFocused) || headerTransparent\n ? styles.header\n : null\n }\n >\n {header !== undefined ? header(props) : <Header {...props} />}\n </View>\n </NavigationRouteContext.Provider>\n </NavigationContext.Provider>\n );\n })}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n"]}
@@ -82,6 +82,7 @@ function HeaderSegment(props) {
82
82
  onGoBack,
83
83
  headerTitle: title,
84
84
  headerLeft: left = onGoBack ? props => /*#__PURE__*/React.createElement(_elements.HeaderBackButton, props) : undefined,
85
+ headerRight: right,
85
86
  headerBackImage,
86
87
  headerBackTitle,
87
88
  headerBackTitleVisible = _reactNative.Platform.OS === 'ios',
@@ -126,6 +127,9 @@ function HeaderSegment(props) {
126
127
  titleLayout,
127
128
  canGoBack: Boolean(onGoBack)
128
129
  }) : undefined;
130
+ const headerRight = right ? props => right({ ...props,
131
+ canGoBack: Boolean(onGoBack)
132
+ }) : undefined;
129
133
  const headerTitle = typeof title !== 'function' ? props => /*#__PURE__*/React.createElement(_elements.HeaderTitle, _extends({}, props, {
130
134
  onLayout: handleTitleLayout
131
135
  })) : props => title({ ...props,
@@ -137,6 +141,7 @@ function HeaderSegment(props) {
137
141
  headerTitle: headerTitle,
138
142
  headerLeft: headerLeft,
139
143
  headerLeftLabelVisible: headerBackTitleVisible,
144
+ headerRight: headerRight,
140
145
  headerTitleContainerStyle: [titleStyle, headerTitleContainerStyle],
141
146
  headerLeftContainerStyle: [leftButtonStyle, headerLeftContainerStyle],
142
147
  headerRightContainerStyle: [rightButtonStyle, headerRightContainerStyle],
@@ -1 +1 @@
1
- {"version":3,"sources":["HeaderSegment.tsx"],"names":["HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","React","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerBackImage","headerBackTitle","headerBackTitleVisible","Platform","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","StyleSheet","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AAcA;;;;;;;;;;AAYe,SAASA,aAAT,CAAuBC,KAAvB,EAAqC;AAClD,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IACJC,KAAK,CAACC,QAAN,CAAmCC,SAAnC,CADF;AAGA,QAAM,CAACC,WAAD,EAAcC,cAAd,IACJJ,KAAK,CAACC,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,QACEZ,eAAe,IACfS,MAAM,KAAKT,eAAe,CAACS,MAD3B,IAEAC,KAAK,KAAKV,eAAe,CAACU,KAH5B,EAIE;AACA;AACD;;AAEDT,IAAAA,kBAAkB,CAAC;AAAEQ,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAD,CAAlB;AACD,GAZD;;AAcA,QAAMI,oBAAoB,GAAG,sBAC3B,CACEC,iBADF,EAEEH,MAFF,EAGEI,OAHF,EAIEC,IAJF,EAKEZ,WALF,EAMEL,eANF,EAOEkB,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,EAAExB;AAPJ;AAHO,GAAD,CAVQ,CAA7B;AAyBA,QAAM;AACJmB,IAAAA,QADI;AAEJP,IAAAA,MAFI;AAGJa,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,WAAW,EAAEJ,KALT;AAMJK,IAAAA,UAAU,EAAEC,IAAI,GAAGH,QAAQ,GACtB3B,KAAD,iBAAkC,oBAAC,0BAAD,EAAsBA,KAAtB,CADX,GAEvBK,SARA;AASJ0B,IAAAA,eATI;AAUJC,IAAAA,eAVI;AAWJC,IAAAA,sBAAsB,GAAGC,sBAASC,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;AAuBJ/B,IAAAA,iBAvBI;AAwBJ,OAAGgC;AAxBC,MAyBFhD,KAzBJ;AA2BA,QAAMiD,aAAa,GAAG,sCACpBpC,MADoB,EAEpBa,KAFoB,EAGpBqB,qBAHoB,CAAtB;;AAMA,QAAM;AAAErC,IAAAA,MAAM,GAAGuC;AAAX,MAA6BC,wBAAWC,OAAX,CACjCL,iBAAiB,IAAI,EADY,CAAnC;;AAIA,QAAM;AACJM,IAAAA,UADI;AAEJC,IAAAA,eAFI;AAGJC,IAAAA,cAHI;AAIJC,IAAAA,gBAJI;AAKJC,IAAAA;AALI,MAMFzC,oBAAoB,CACtBC,iBADsB,EAEtBH,MAFsB,EAGtBO,QAAQ,CAACH,OAHa,EAItBG,QAAQ,CAACF,IAJa,EAKtBZ,WALsB,EAMtB0B,eAAe,GAAG/B,eAAH,GAAqBI,SANd,EAOtB,OAAOK,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCuC,aAPhB,CANxB;AAgBA,QAAMpB,UAA4C,GAAGC,IAAI,GACpD9B,KAAD,IACE8B,IAAI,CAAC,EACH,GAAG9B,KADA;AAEHyD,IAAAA,SAAS,EAAE1B,eAFR;AAGH2B,IAAAA,kBAAkB,EAAErB,4BAHjB;AAIHsB,IAAAA,MAAM,EAAErB,gBAJL;AAKHsB,IAAAA,gBAAgB,EAAErB,0BALf;AAMHsB,IAAAA,OAAO,EAAElC,QANN;AAOHmC,IAAAA,KAAK,EAAE9B,eAPJ;AAQH+B,IAAAA,cAAc,EAAE3B,wBARb;AASH4B,IAAAA,UAAU,EAAE,CAACV,cAAD,EAAiBd,oBAAjB,CATT;AAUHyB,IAAAA,aAAa,EAAEnD,qBAVZ;AAWHoD,IAAAA,YAAY,EAAErD,MAXX;AAYHP,IAAAA,WAZG;AAaH6D,IAAAA,SAAS,EAAEC,OAAO,CAACzC,QAAD;AAbf,GAAD,CAF+C,GAiBrDtB,SAjBJ;AAmBA,QAAMuB,WAA8C,GAClD,OAAOJ,KAAP,KAAiB,UAAjB,GACKxB,KAAD,iBAAW,oBAAC,qBAAD,eAAiBA,KAAjB;AAAwB,IAAA,QAAQ,EAAEQ;AAAlC,KADf,GAEKR,KAAD,IAAWwB,KAAK,CAAC,EAAE,GAAGxB,KAAL;AAAYqE,IAAAA,QAAQ,EAAE7D;AAAtB,GAAD,CAHtB;AAKA,sBACE,oBAAC,gBAAD;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,CAACmB,UAAD,EAAaX,yBAAb,CAN7B;AAOE,IAAA,wBAAwB,EAAE,CAACY,eAAD,EAAkBX,wBAAlB,CAP5B;AAQE,IAAA,yBAAyB,EAAE,CAACa,gBAAD,EAAmBZ,yBAAnB,CAR7B;AASE,IAAA,8BAA8B,EAAE,CAC9Ba,eAD8B,EAE9BZ,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":["HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","React","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","headerRight","right","headerBackImage","headerBackTitle","headerBackTitleVisible","Platform","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","StyleSheet","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","onLayout"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AAcA;;;;;;;;;;AAYe,SAASA,aAAT,CAAuBC,KAAvB,EAAqC;AAClD,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwCC,KAAK,CAACC,QAAN,CAE5CC,SAF4C,CAA9C;AAIA,QAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCJ,KAAK,CAACC,QAAN,CACpCC,SADoC,CAAtC;;AAIA,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,QACEZ,eAAe,IACfS,MAAM,KAAKT,eAAe,CAACS,MAD3B,IAEAC,KAAK,KAAKV,eAAe,CAACU,KAH5B,EAIE;AACA;AACD;;AAEDT,IAAAA,kBAAkB,CAAC;AAAEQ,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAD,CAAlB;AACD,GAZD;;AAcA,QAAMI,oBAAoB,GAAG,sBAC3B,CACEC,iBADF,EAEEH,MAFF,EAGEI,OAHF,EAIEC,IAJF,EAKEZ,WALF,EAMEL,eANF,EAOEkB,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,EAAExB;AAPJ;AAHO,GAAD,CAVQ,CAA7B;AAyBA,QAAM;AACJmB,IAAAA,QADI;AAEJP,IAAAA,MAFI;AAGJa,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,WAAW,EAAEJ,KALT;AAMJK,IAAAA,UAAU,EAAEC,IAAI,GAAGH,QAAQ,GACtB3B,KAAD,iBAAkC,oBAAC,0BAAD,EAAsBA,KAAtB,CADX,GAEvBK,SARA;AASJ0B,IAAAA,WAAW,EAAEC,KATT;AAUJC,IAAAA,eAVI;AAWJC,IAAAA,eAXI;AAYJC,IAAAA,sBAAsB,GAAGC,sBAASC,EAAT,KAAgB,KAZrC;AAaJC,IAAAA,wBAbI;AAcJC,IAAAA,4BAdI;AAeJC,IAAAA,gBAfI;AAgBJC,IAAAA,0BAhBI;AAiBJC,IAAAA,oBAjBI;AAkBJC,IAAAA,yBAlBI;AAmBJC,IAAAA,wBAnBI;AAoBJC,IAAAA,yBApBI;AAqBJC,IAAAA,8BArBI;AAsBJC,IAAAA,WAAW,EAAEC,iBAtBT;AAuBJC,IAAAA,qBAvBI;AAwBJjC,IAAAA,iBAxBI;AAyBJ,OAAGkC;AAzBC,MA0BFlD,KA1BJ;AA4BA,QAAMmD,aAAa,GAAG,sCACpBtC,MADoB,EAEpBa,KAFoB,EAGpBuB,qBAHoB,CAAtB;;AAMA,QAAM;AAAEvC,IAAAA,MAAM,GAAGyC;AAAX,MAA6BC,wBAAWC,OAAX,CACjCL,iBAAiB,IAAI,EADY,CAAnC;;AAIA,QAAM;AACJM,IAAAA,UADI;AAEJC,IAAAA,eAFI;AAGJC,IAAAA,cAHI;AAIJC,IAAAA,gBAJI;AAKJC,IAAAA;AALI,MAMF3C,oBAAoB,CACtBC,iBADsB,EAEtBH,MAFsB,EAGtBO,QAAQ,CAACH,OAHa,EAItBG,QAAQ,CAACF,IAJa,EAKtBZ,WALsB,EAMtB4B,eAAe,GAAGjC,eAAH,GAAqBI,SANd,EAOtB,OAAOK,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCyC,aAPhB,CANxB;AAgBA,QAAMtB,UAA4C,GAAGC,IAAI,GACpD9B,KAAD,IACE8B,IAAI,CAAC,EACH,GAAG9B,KADA;AAEH2D,IAAAA,SAAS,EAAE1B,eAFR;AAGH2B,IAAAA,kBAAkB,EAAErB,4BAHjB;AAIHsB,IAAAA,MAAM,EAAErB,gBAJL;AAKHsB,IAAAA,gBAAgB,EAAErB,0BALf;AAMHsB,IAAAA,OAAO,EAAEpC,QANN;AAOHqC,IAAAA,KAAK,EAAE9B,eAPJ;AAQH+B,IAAAA,cAAc,EAAE3B,wBARb;AASH4B,IAAAA,UAAU,EAAE,CAACV,cAAD,EAAiBd,oBAAjB,CATT;AAUHyB,IAAAA,aAAa,EAAErD,qBAVZ;AAWHsD,IAAAA,YAAY,EAAEvD,MAXX;AAYHP,IAAAA,WAZG;AAaH+D,IAAAA,SAAS,EAAEC,OAAO,CAAC3C,QAAD;AAbf,GAAD,CAF+C,GAiBrDtB,SAjBJ;AAmBA,QAAM0B,WAA8C,GAAGC,KAAK,GACvDhC,KAAD,IACEgC,KAAK,CAAC,EACJ,GAAGhC,KADC;AAEJqE,IAAAA,SAAS,EAAEC,OAAO,CAAC3C,QAAD;AAFd,GAAD,CAFiD,GAMxDtB,SANJ;AAQA,QAAMuB,WAA8C,GAClD,OAAOJ,KAAP,KAAiB,UAAjB,GACKxB,KAAD,iBAAW,oBAAC,qBAAD,eAAiBA,KAAjB;AAAwB,IAAA,QAAQ,EAAEQ;AAAlC,KADf,GAEKR,KAAD,IAAWwB,KAAK,CAAC,EAAE,GAAGxB,KAAL;AAAYuE,IAAAA,QAAQ,EAAE/D;AAAtB,GAAD,CAHtB;AAKA,sBACE,oBAAC,gBAAD;AACE,IAAA,KAAK,EAAEkB,KADT;AAEE,IAAA,MAAM,EAAEb,MAFV;AAGE,IAAA,WAAW,EAAEe,WAHf;AAIE,IAAA,UAAU,EAAEC,UAJd;AAKE,IAAA,sBAAsB,EAAEM,sBAL1B;AAME,IAAA,WAAW,EAAEJ,WANf;AAOE,IAAA,yBAAyB,EAAE,CAACuB,UAAD,EAAaX,yBAAb,CAP7B;AAQE,IAAA,wBAAwB,EAAE,CAACY,eAAD,EAAkBX,wBAAlB,CAR5B;AASE,IAAA,yBAAyB,EAAE,CAACa,gBAAD,EAAmBZ,yBAAnB,CAT7B;AAUE,IAAA,8BAA8B,EAAE,CAC9Ba,eAD8B,EAE9BZ,8BAF8B,CAVlC;AAcE,IAAA,WAAW,EAAEE,iBAdf;AAeE,IAAA,qBAAqB,EAAEC;AAfzB,KAgBMC,IAhBN,EADF;AAoBD","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"]}
@@ -15,14 +15,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- function ModalStatusBarManager({
19
- dark,
20
- layout,
21
- insets,
22
- style
23
- }) {
18
+ function ModalStatusBarManager(_ref) {
24
19
  var _flattenedStyle$trans, _flattenedStyle$trans2;
25
20
 
21
+ let {
22
+ dark,
23
+ layout,
24
+ insets,
25
+ style
26
+ } = _ref;
26
27
  const {
27
28
  dark: darkTheme
28
29
  } = (0, _native.useTheme)();
@@ -34,9 +35,10 @@ function ModalStatusBarManager({
34
35
 
35
36
  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;
36
37
  React.useEffect(() => {
37
- const listener = ({
38
- value
39
- }) => {
38
+ const listener = _ref2 => {
39
+ let {
40
+ value
41
+ } = _ref2;
40
42
  setOverlapping(value < offset);
41
43
  };
42
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalStatusBarManager.tsx"],"names":["ModalStatusBarManager","dark","layout","insets","style","darkTheme","overlapping","setOverlapping","React","useState","scale","width","offset","top","flattenedStyle","StyleSheet","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAYe,SAASA,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,MAAsB,uBAA5B;AACA,QAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC;AAEA,QAAMC,KAAK,GAAG,IAAI,KAAKR,MAAM,CAACS,KAA9B;AACA,QAAMC,MAAM,GAAG,CAACT,MAAM,CAACU,GAAP,GAAa,EAAd,IAAoBH,KAAnC;;AAEA,QAAMI,cAAc,GAAGC,wBAAWC,OAAX,CAAmBZ,KAAnB,CAAvB;;AACA,QAAMa,UAAU,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,SAAnB,oFAAG,sBAA2BC,IAA3B,CAChBC,CAAD,IAAYA,CAAC,CAACH,UAAF,KAAiBI,SADZ,CAAH,2DAAG,uBAEhBJ,UAFH;AAIAT,EAAAA,KAAK,CAACc,SAAN,CAAgB,MAAM;AACpB,UAAMC,QAAQ,GAAG,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAkC;AACjDjB,MAAAA,cAAc,CAACiB,KAAK,GAAGZ,MAAT,CAAd;AACD,KAFD;;AAIA,UAAMa,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,CAACb,MAAD,EAASK,UAAT,CARH;AAUA,QAAMW,WAAW,GAAG3B,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAW,CAACI,SAA7B;AAEA,sBACE,oBAAC,sBAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,QAAQ,EAAEC,WAAW,IAAIsB,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":["ModalStatusBarManager","dark","layout","insets","style","darkTheme","overlapping","setOverlapping","React","useState","scale","width","offset","top","flattenedStyle","StyleSheet","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAYe,SAASA,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,MAAsB,uBAA5B;AACA,QAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCC,KAAK,CAACC,QAAN,CAAe,IAAf,CAAtC;AAEA,QAAMC,KAAK,GAAG,IAAI,KAAKR,MAAM,CAACS,KAA9B;AACA,QAAMC,MAAM,GAAG,CAACT,MAAM,CAACU,GAAP,GAAa,EAAd,IAAoBH,KAAnC;;AAEA,QAAMI,cAAc,GAAGC,wBAAWC,OAAX,CAAmBZ,KAAnB,CAAvB;;AACA,QAAMa,UAAU,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,SAAnB,oFAAG,sBAA2BC,IAA3B,CAChBC,CAAD,IAAYA,CAAC,CAACH,UAAF,KAAiBI,SADZ,CAAH,2DAAG,uBAEhBJ,UAFH;AAIAT,EAAAA,KAAK,CAACc,SAAN,CAAgB,MAAM;AACpB,UAAMC,QAAQ,GAAG,SAAkC;AAAA,UAAjC;AAAEC,QAAAA;AAAF,OAAiC;AACjDjB,MAAAA,cAAc,CAACiB,KAAK,GAAGZ,MAAT,CAAd;AACD,KAFD;;AAIA,UAAMa,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,CAACb,MAAD,EAASK,UAAT,CARH;AAUA,QAAMW,WAAW,GAAG3B,IAAH,aAAGA,IAAH,cAAGA,IAAH,GAAW,CAACI,SAA7B;AAEA,sBACE,oBAAC,sBAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,QAAQ,EAAEC,WAAW,IAAIsB,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"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.MaybeScreen = exports.MaybeScreenContainer = void 0;
6
+ exports.MaybeScreenContainer = exports.MaybeScreen = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -22,10 +22,12 @@ try {
22
22
  } catch (e) {// Ignore
23
23
  }
24
24
 
25
- const MaybeScreenContainer = ({
26
- enabled,
27
- ...rest
28
- }) => {
25
+ const MaybeScreenContainer = _ref => {
26
+ let {
27
+ enabled,
28
+ ...rest
29
+ } = _ref;
30
+
29
31
  if (Screens != null) {
30
32
  return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({
31
33
  enabled: enabled
@@ -37,11 +39,13 @@ const MaybeScreenContainer = ({
37
39
 
38
40
  exports.MaybeScreenContainer = MaybeScreenContainer;
39
41
 
40
- const MaybeScreen = ({
41
- enabled,
42
- active,
43
- ...rest
44
- }) => {
42
+ const MaybeScreen = _ref2 => {
43
+ let {
44
+ enabled,
45
+ active,
46
+ ...rest
47
+ } = _ref2;
48
+
45
49
  if (Screens != null) {
46
50
  return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
47
51
  enabled: enabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["Screens.tsx"],"names":["Screens","require","e","MaybeScreenContainer","enabled","rest","MaybeScreen","active"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,IAAIA,OAAJ;;AAEA,IAAI;AACFA,EAAAA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAEM,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,iBAAD,EAAUA,IAAV,CAAP;AACD,CAZM;;;;AAcA,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,iBAAD,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":["Screens","require","e","MaybeScreenContainer","enabled","rest","MaybeScreen","active"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,IAAIA,OAAJ;;AAEA,IAAI;AACFA,EAAAA,OAAO,GAAGC,OAAO,CAAC,sBAAD,CAAjB;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CACV;AACD;;AAEM,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,iBAAD,EAAUA,IAAV,CAAP;AACD,CAZM;;;;AAcA,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,iBAAD,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"]}
@@ -59,8 +59,8 @@ const hasOpacityStyle = style => {
59
59
  };
60
60
 
61
61
  class Card extends React.Component {
62
- constructor(...args) {
63
- super(...args);
62
+ constructor() {
63
+ super(...arguments);
64
64
 
65
65
  _defineProperty(this, "isCurrentlyMounted", false);
66
66
 
@@ -81,10 +81,11 @@ class Card extends React.Component {
81
81
 
82
82
  _defineProperty(this, "lastToValue", void 0);
83
83
 
84
- _defineProperty(this, "animate", ({
85
- closing,
86
- velocity
87
- }) => {
84
+ _defineProperty(this, "animate", _ref => {
85
+ let {
86
+ closing,
87
+ velocity
88
+ } = _ref;
88
89
  const {
89
90
  gesture,
90
91
  transitionSpec,
@@ -111,9 +112,10 @@ class Card extends React.Component {
111
112
  toValue,
112
113
  useNativeDriver,
113
114
  isInteraction: false
114
- }).start(({
115
- finished
116
- }) => {
115
+ }).start(_ref2 => {
116
+ let {
117
+ finished
118
+ } = _ref2;
117
119
  this.handleEndInteraction();
118
120
  clearTimeout(this.pendingGestureCallback);
119
121
 
@@ -132,11 +134,13 @@ class Card extends React.Component {
132
134
  });
133
135
  });
134
136
 
135
- _defineProperty(this, "getAnimateToValue", ({
136
- closing,
137
- layout,
138
- gestureDirection
139
- }) => {
137
+ _defineProperty(this, "getAnimateToValue", _ref3 => {
138
+ let {
139
+ closing,
140
+ layout,
141
+ gestureDirection
142
+ } = _ref3;
143
+
140
144
  if (!closing) {
141
145
  return 0;
142
146
  }
@@ -167,9 +171,10 @@ class Card extends React.Component {
167
171
  }
168
172
  });
169
173
 
170
- _defineProperty(this, "handleGestureStateChange", ({
171
- nativeEvent
172
- }) => {
174
+ _defineProperty(this, "handleGestureStateChange", _ref4 => {
175
+ let {
176
+ nativeEvent
177
+ } = _ref4;
173
178
  const {
174
179
  layout,
175
180
  onClose,
@@ -181,7 +186,7 @@ class Card extends React.Component {
181
186
  } = this.props;
182
187
 
183
188
  switch (nativeEvent.state) {
184
- case _GestureHandler.GestureState.BEGAN:
189
+ case _GestureHandler.GestureState.ACTIVE:
185
190
  this.isSwiping.setValue(TRUE);
186
191
  this.handleStartInteraction();
187
192
  onGestureBegin === null || onGestureBegin === void 0 ? void 0 : onGestureBegin();
@@ -471,12 +476,15 @@ _defineProperty(Card, "defaultProps", {
471
476
  shadowEnabled: false,
472
477
  gestureEnabled: true,
473
478
  gestureVelocityImpact: GESTURE_VELOCITY_IMPACT,
474
- overlay: ({
475
- style
476
- }) => style ? /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
477
- pointerEvents: "none",
478
- style: [styles.overlay, style]
479
- }) : null
479
+ overlay: _ref5 => {
480
+ let {
481
+ style
482
+ } = _ref5;
483
+ return style ? /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
484
+ pointerEvents: "none",
485
+ style: [styles.overlay, style]
486
+ }) : null;
487
+ }
480
488
  });
481
489
 
482
490
  const getIsModalPresentation = cardStyleInterpolator => {