@react-navigation/stack 8.0.0-alpha.6 → 8.0.0-alpha.60

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 (147) hide show
  1. package/lib/module/TransitionConfigs/CardStyleInterpolators.js +280 -84
  2. package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
  3. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +11 -44
  4. package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
  5. package/lib/module/TransitionConfigs/TransitionEasings.js +71 -0
  6. package/lib/module/TransitionConfigs/TransitionEasings.js.map +1 -0
  7. package/lib/module/TransitionConfigs/TransitionPresets.js +50 -10
  8. package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -1
  9. package/lib/module/TransitionConfigs/TransitionSpecs.js +69 -34
  10. package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -1
  11. package/lib/module/index.js +2 -2
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/navigators/createStackNavigator.js +37 -33
  14. package/lib/module/navigators/createStackNavigator.js.map +1 -1
  15. package/lib/module/utils/GestureHandlerContext.js +5 -0
  16. package/lib/module/utils/GestureHandlerContext.js.map +1 -0
  17. package/lib/module/utils/gestureActivationCriteria.js +10 -8
  18. package/lib/module/utils/gestureActivationCriteria.js.map +1 -1
  19. package/lib/module/utils/useCardAnimation.js +1 -1
  20. package/lib/module/utils/useCardAnimation.js.map +1 -1
  21. package/lib/module/utils/useGestureHandler.js +9 -0
  22. package/lib/module/utils/useGestureHandler.js.map +1 -0
  23. package/lib/module/utils/useKeyboardManager.js +71 -26
  24. package/lib/module/utils/useKeyboardManager.js.map +1 -1
  25. package/lib/module/views/GestureHandler.js +15 -14
  26. package/lib/module/views/GestureHandler.js.map +1 -1
  27. package/lib/module/views/GestureHandlerNative.js +16 -10
  28. package/lib/module/views/GestureHandlerNative.js.map +1 -1
  29. package/lib/module/views/Header/Header.js +4 -2
  30. package/lib/module/views/Header/Header.js.map +1 -1
  31. package/lib/module/views/Header/HeaderContainer.js +60 -21
  32. package/lib/module/views/Header/HeaderContainer.js.map +1 -1
  33. package/lib/module/views/Header/HeaderSegment.js +6 -9
  34. package/lib/module/views/Header/HeaderSegment.js.map +1 -1
  35. package/lib/module/views/Stack/Card.js +170 -123
  36. package/lib/module/views/Stack/Card.js.map +1 -1
  37. package/lib/module/views/Stack/CardContainer.js +96 -98
  38. package/lib/module/views/Stack/CardContainer.js.map +1 -1
  39. package/lib/module/views/Stack/CardContent.js +10 -37
  40. package/lib/module/views/Stack/CardContent.js.map +1 -1
  41. package/lib/module/views/Stack/CardStack.js +211 -147
  42. package/lib/module/views/Stack/CardStack.js.map +1 -1
  43. package/lib/module/views/Stack/StackView.js +106 -57
  44. package/lib/module/views/Stack/StackView.js.map +1 -1
  45. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +20 -12
  46. package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -1
  47. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +4 -4
  48. package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -1
  49. package/lib/typescript/src/TransitionConfigs/TransitionEasings.d.ts +38 -0
  50. package/lib/typescript/src/TransitionConfigs/TransitionEasings.d.ts.map +1 -0
  51. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +15 -3
  52. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -1
  53. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +44 -15
  54. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -1
  55. package/lib/typescript/src/index.d.ts +12 -12
  56. package/lib/typescript/src/index.d.ts.map +1 -1
  57. package/lib/typescript/src/navigators/createStackNavigator.d.ts +10 -15
  58. package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -1
  59. package/lib/typescript/src/types.d.ts +120 -108
  60. package/lib/typescript/src/types.d.ts.map +1 -1
  61. package/lib/typescript/src/utils/CardAnimationContext.d.ts +1 -1
  62. package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -1
  63. package/lib/typescript/src/utils/GestureHandlerContext.d.ts +3 -0
  64. package/lib/typescript/src/utils/GestureHandlerContext.d.ts.map +1 -0
  65. package/lib/typescript/src/utils/gestureActivationCriteria.d.ts +4 -51
  66. package/lib/typescript/src/utils/gestureActivationCriteria.d.ts.map +1 -1
  67. package/lib/typescript/src/utils/getDistanceForDirection.d.ts +1 -1
  68. package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -1
  69. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +1 -1
  70. package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -1
  71. package/lib/typescript/src/utils/getModalRoutesKeys.d.ts +1 -1
  72. package/lib/typescript/src/utils/getModalRoutesKeys.d.ts.map +1 -1
  73. package/lib/typescript/src/utils/getShadowStyle.d.ts +5 -5
  74. package/lib/typescript/src/utils/useCardAnimation.d.ts +1 -1
  75. package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -1
  76. package/lib/typescript/src/utils/useGestureHandler.d.ts +2 -0
  77. package/lib/typescript/src/utils/useGestureHandler.d.ts.map +1 -0
  78. package/lib/typescript/src/utils/useKeyboardManager.d.ts +12 -2
  79. package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -1
  80. package/lib/typescript/src/views/GestureHandler.android.d.ts +1 -1
  81. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -1
  82. package/lib/typescript/src/views/GestureHandler.d.ts +7 -11
  83. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -1
  84. package/lib/typescript/src/views/GestureHandler.ios.d.ts +1 -1
  85. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -1
  86. package/lib/typescript/src/views/GestureHandlerNative.d.ts +9 -4
  87. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -1
  88. package/lib/typescript/src/views/Header/Header.d.ts +2 -2
  89. package/lib/typescript/src/views/Header/Header.d.ts.map +1 -1
  90. package/lib/typescript/src/views/Header/HeaderContainer.d.ts +9 -3
  91. package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -1
  92. package/lib/typescript/src/views/Header/HeaderSegment.d.ts +6 -4
  93. package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -1
  94. package/lib/typescript/src/views/Stack/Card.d.ts +14 -8
  95. package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -1
  96. package/lib/typescript/src/views/Stack/CardContainer.d.ts +7 -7
  97. package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -1
  98. package/lib/typescript/src/views/Stack/CardContent.d.ts +1 -1
  99. package/lib/typescript/src/views/Stack/CardContent.d.ts.map +1 -1
  100. package/lib/typescript/src/views/Stack/CardStack.d.ts +10 -6
  101. package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -1
  102. package/lib/typescript/src/views/Stack/StackView.d.ts +14 -17
  103. package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -1
  104. package/package.json +23 -24
  105. package/src/TransitionConfigs/CardStyleInterpolators.tsx +399 -100
  106. package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +15 -46
  107. package/src/TransitionConfigs/TransitionEasings.tsx +90 -0
  108. package/src/TransitionConfigs/TransitionPresets.tsx +56 -10
  109. package/src/TransitionConfigs/TransitionSpecs.tsx +68 -34
  110. package/src/index.tsx +3 -2
  111. package/src/navigators/createStackNavigator.tsx +74 -91
  112. package/src/types.tsx +149 -123
  113. package/src/utils/GestureHandlerContext.tsx +5 -0
  114. package/src/utils/gestureActivationCriteria.tsx +14 -10
  115. package/src/utils/useCardAnimation.tsx +1 -1
  116. package/src/utils/useGestureHandler.tsx +9 -0
  117. package/src/utils/useKeyboardManager.tsx +96 -33
  118. package/src/views/GestureHandler.tsx +24 -16
  119. package/src/views/GestureHandlerNative.tsx +24 -13
  120. package/src/views/Header/Header.tsx +4 -2
  121. package/src/views/Header/HeaderContainer.tsx +79 -37
  122. package/src/views/Header/HeaderSegment.tsx +10 -11
  123. package/src/views/Stack/Card.tsx +241 -154
  124. package/src/views/Stack/CardContainer.tsx +111 -127
  125. package/src/views/Stack/CardContent.tsx +13 -51
  126. package/src/views/Stack/CardStack.tsx +478 -335
  127. package/src/views/Stack/StackView.tsx +181 -82
  128. package/lib/module/utils/GestureHandlerRefContext.js +0 -5
  129. package/lib/module/utils/GestureHandlerRefContext.js.map +0 -1
  130. package/lib/module/utils/findLastIndex.js +0 -11
  131. package/lib/module/utils/findLastIndex.js.map +0 -1
  132. package/lib/module/utils/useGestureHandlerRef.js +0 -12
  133. package/lib/module/utils/useGestureHandlerRef.js.map +0 -1
  134. package/lib/module/views/Stack/CardA11yWrapper.js +0 -43
  135. package/lib/module/views/Stack/CardA11yWrapper.js.map +0 -1
  136. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +0 -3
  137. package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +0 -1
  138. package/lib/typescript/src/utils/findLastIndex.d.ts +0 -2
  139. package/lib/typescript/src/utils/findLastIndex.d.ts.map +0 -1
  140. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +0 -3
  141. package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +0 -1
  142. package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts +0 -15
  143. package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts.map +0 -1
  144. package/src/utils/GestureHandlerRefContext.tsx +0 -5
  145. package/src/utils/findLastIndex.tsx +0 -9
  146. package/src/utils/useGestureHandlerRef.tsx +0 -15
  147. package/src/views/Stack/CardA11yWrapper.tsx +0 -67
@@ -15,10 +15,12 @@ export const gestureActivationCriteria = ({
15
15
  }) => {
16
16
  const enableTrackpadTwoFingerGesture = true;
17
17
  const distance = gestureResponseDistance !== undefined ? gestureResponseDistance : gestureDirection === 'vertical' || gestureDirection === 'vertical-inverted' ? GESTURE_RESPONSE_DISTANCE_VERTICAL : GESTURE_RESPONSE_DISTANCE_HORIZONTAL;
18
+ const failOffsetX = [-15, 15];
19
+ const failOffsetY = [-20, 20];
18
20
  if (gestureDirection === 'vertical') {
19
21
  return {
20
- maxDeltaX: 15,
21
- minOffsetY: 5,
22
+ failOffsetX,
23
+ activeOffsetY: 5,
22
24
  hitSlop: {
23
25
  bottom: -layout.height + distance
24
26
  },
@@ -26,8 +28,8 @@ export const gestureActivationCriteria = ({
26
28
  };
27
29
  } else if (gestureDirection === 'vertical-inverted') {
28
30
  return {
29
- maxDeltaX: 15,
30
- minOffsetY: -5,
31
+ failOffsetX,
32
+ activeOffsetY: -5,
31
33
  hitSlop: {
32
34
  top: -layout.height + distance
33
35
  },
@@ -38,8 +40,8 @@ export const gestureActivationCriteria = ({
38
40
  const invertedMultiplier = getInvertedMultiplier(gestureDirection, direction === 'rtl');
39
41
  if (invertedMultiplier === 1) {
40
42
  return {
41
- minOffsetX: 5,
42
- maxDeltaY: 20,
43
+ activeOffsetX: 5,
44
+ failOffsetY,
43
45
  hitSlop: {
44
46
  right: hitSlop
45
47
  },
@@ -47,8 +49,8 @@ export const gestureActivationCriteria = ({
47
49
  };
48
50
  } else {
49
51
  return {
50
- minOffsetX: -5,
51
- maxDeltaY: 20,
52
+ activeOffsetX: -5,
53
+ failOffsetY,
52
54
  hitSlop: {
53
55
  left: hitSlop
54
56
  },
@@ -1 +1 @@
1
- {"version":3,"names":["getInvertedMultiplier","GESTURE_RESPONSE_DISTANCE_HORIZONTAL","GESTURE_RESPONSE_DISTANCE_VERTICAL","gestureActivationCriteria","direction","gestureDirection","gestureResponseDistance","layout","enableTrackpadTwoFingerGesture","distance","undefined","maxDeltaX","minOffsetY","hitSlop","bottom","height","top","width","invertedMultiplier","minOffsetX","maxDeltaY","right","left"],"sourceRoot":"../../../src","sources":["utils/gestureActivationCriteria.tsx"],"mappings":";;AAGA,SAASA,qBAAqB,QAAQ,4BAAyB;;AAE/D;AACA;AACA;AACA,MAAMC,oCAAoC,GAAG,EAAE;AAC/C,MAAMC,kCAAkC,GAAG,GAAG;AAE9C,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACxCC,SAAS;EACTC,gBAAgB;EAChBC,uBAAuB;EACvBC;AAMF,CAAC,KAAK;EACJ,MAAMC,8BAA8B,GAAG,IAAI;EAE3C,MAAMC,QAAQ,GACZH,uBAAuB,KAAKI,SAAS,GACjCJ,uBAAuB,GACvBD,gBAAgB,KAAK,UAAU,IAC7BA,gBAAgB,KAAK,mBAAmB,GACxCH,kCAAkC,GAClCD,oCAAoC;EAE5C,IAAII,gBAAgB,KAAK,UAAU,EAAE;IACnC,OAAO;MACLM,SAAS,EAAE,EAAE;MACbC,UAAU,EAAE,CAAC;MACbC,OAAO,EAAE;QAAEC,MAAM,EAAE,CAACP,MAAM,CAACQ,MAAM,GAAGN;MAAS,CAAC;MAC9CD;IACF,CAAC;EACH,CAAC,MAAM,IAAIH,gBAAgB,KAAK,mBAAmB,EAAE;IACnD,OAAO;MACLM,SAAS,EAAE,EAAE;MACbC,UAAU,EAAE,CAAC,CAAC;MACdC,OAAO,EAAE;QAAEG,GAAG,EAAE,CAACT,MAAM,CAACQ,MAAM,GAAGN;MAAS,CAAC;MAC3CD;IACF,CAAC;EACH,CAAC,MAAM;IACL,MAAMK,OAAO,GAAG,CAACN,MAAM,CAACU,KAAK,GAAGR,QAAQ;IACxC,MAAMS,kBAAkB,GAAGlB,qBAAqB,CAC9CK,gBAAgB,EAChBD,SAAS,KAAK,KAChB,CAAC;IAED,IAAIc,kBAAkB,KAAK,CAAC,EAAE;MAC5B,OAAO;QACLC,UAAU,EAAE,CAAC;QACbC,SAAS,EAAE,EAAE;QACbP,OAAO,EAAE;UAAEQ,KAAK,EAAER;QAAQ,CAAC;QAC3BL;MACF,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLW,UAAU,EAAE,CAAC,CAAC;QACdC,SAAS,EAAE,EAAE;QACbP,OAAO,EAAE;UAAES,IAAI,EAAET;QAAQ,CAAC;QAC1BL;MACF,CAAC;IACH;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getInvertedMultiplier","GESTURE_RESPONSE_DISTANCE_HORIZONTAL","GESTURE_RESPONSE_DISTANCE_VERTICAL","gestureActivationCriteria","direction","gestureDirection","gestureResponseDistance","layout","enableTrackpadTwoFingerGesture","distance","undefined","failOffsetX","failOffsetY","activeOffsetY","hitSlop","bottom","height","top","width","invertedMultiplier","activeOffsetX","right","left"],"sourceRoot":"../../../src","sources":["utils/gestureActivationCriteria.tsx"],"mappings":";;AAIA,SAASA,qBAAqB,QAAQ,4BAAyB;;AAE/D;AACA;AACA;AACA,MAAMC,oCAAoC,GAAG,EAAE;AAC/C,MAAMC,kCAAkC,GAAG,GAAG;AAE9C,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACxCC,SAAS;EACTC,gBAAgB;EAChBC,uBAAuB;EACvBC;AAMF,CAAC,KAAuB;EACtB,MAAMC,8BAA8B,GAAG,IAAI;EAE3C,MAAMC,QAAQ,GACZH,uBAAuB,KAAKI,SAAS,GACjCJ,uBAAuB,GACvBD,gBAAgB,KAAK,UAAU,IAC7BA,gBAAgB,KAAK,mBAAmB,GACxCH,kCAAkC,GAClCD,oCAAoC;EAE5C,MAAMU,WAA6B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;EAC/C,MAAMC,WAA6B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;EAE/C,IAAIP,gBAAgB,KAAK,UAAU,EAAE;IACnC,OAAO;MACLM,WAAW;MACXE,aAAa,EAAE,CAAC;MAChBC,OAAO,EAAE;QAAEC,MAAM,EAAE,CAACR,MAAM,CAACS,MAAM,GAAGP;MAAS,CAAC;MAC9CD;IACF,CAAC;EACH,CAAC,MAAM,IAAIH,gBAAgB,KAAK,mBAAmB,EAAE;IACnD,OAAO;MACLM,WAAW;MACXE,aAAa,EAAE,CAAC,CAAC;MACjBC,OAAO,EAAE;QAAEG,GAAG,EAAE,CAACV,MAAM,CAACS,MAAM,GAAGP;MAAS,CAAC;MAC3CD;IACF,CAAC;EACH,CAAC,MAAM;IACL,MAAMM,OAAO,GAAG,CAACP,MAAM,CAACW,KAAK,GAAGT,QAAQ;IACxC,MAAMU,kBAAkB,GAAGnB,qBAAqB,CAC9CK,gBAAgB,EAChBD,SAAS,KAAK,KAChB,CAAC;IAED,IAAIe,kBAAkB,KAAK,CAAC,EAAE;MAC5B,OAAO;QACLC,aAAa,EAAE,CAAC;QAChBR,WAAW;QACXE,OAAO,EAAE;UAAEO,KAAK,EAAEP;QAAQ,CAAC;QAC3BN;MACF,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLY,aAAa,EAAE,CAAC,CAAC;QACjBR,WAAW;QACXE,OAAO,EAAE;UAAEQ,IAAI,EAAER;QAAQ,CAAC;QAC1BN;MACF,CAAC;IACH;EACF;AACF,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import { CardAnimationContext } from "./CardAnimationContext.js";
5
5
  export function useCardAnimation() {
6
- const animation = React.useContext(CardAnimationContext);
6
+ const animation = React.use(CardAnimationContext);
7
7
  if (animation === undefined) {
8
8
  throw new Error("Couldn't find values for card animation. Are you inside a screen in Stack?");
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","CardAnimationContext","useCardAnimation","animation","useContext","undefined","Error"],"sourceRoot":"../../../src","sources":["utils/useCardAnimation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,MAAMC,SAAS,GAAGH,KAAK,CAACI,UAAU,CAACH,oBAAoB,CAAC;EAExD,IAAIE,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EAEA,OAAOH,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["React","CardAnimationContext","useCardAnimation","animation","use","undefined","Error"],"sourceRoot":"../../../src","sources":["utils/useCardAnimation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,MAAMC,SAAS,GAAGH,KAAK,CAACI,GAAG,CAACH,oBAAoB,CAAC;EAEjD,IAAIE,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EAEA,OAAOH,SAAS;AAClB","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ import { GestureHandlerContext } from "./GestureHandlerContext.js";
5
+ export function useGestureHandler() {
6
+ const gesture = React.useContext(GestureHandlerContext);
7
+ return gesture;
8
+ }
9
+ //# sourceMappingURL=useGestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","GestureHandlerContext","useGestureHandler","gesture","useContext"],"sourceRoot":"../../../src","sources":["utils/useGestureHandler.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,qBAAqB,QAAQ,4BAAyB;AAE/D,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGH,KAAK,CAACI,UAAU,CAACH,qBAAqB,CAAC;EAEvD,OAAOE,OAAO;AAChB","ignoreList":[]}
@@ -2,12 +2,18 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { Keyboard, TextInput } from 'react-native';
5
- export function useKeyboardManager(isEnabled) {
5
+ export function useKeyboardManager({
6
+ enabled,
7
+ focused,
8
+ contentRef
9
+ }) {
6
10
  // Numeric id of the previously focused text input
7
11
  // When a gesture didn't change the tab, we can restore the focused input with this
8
12
  const previouslyFocusedTextInputRef = React.useRef(undefined);
9
13
  const startTimestampRef = React.useRef(0);
10
14
  const keyboardTimeoutRef = React.useRef(undefined);
15
+ const enabledRef = React.useRef(enabled);
16
+ const focusedRef = React.useRef(focused);
11
17
  const clearKeyboardTimeout = React.useCallback(() => {
12
18
  if (keyboardTimeoutRef.current !== undefined) {
13
19
  clearTimeout(keyboardTimeoutRef.current);
@@ -15,7 +21,7 @@ export function useKeyboardManager(isEnabled) {
15
21
  }
16
22
  }, []);
17
23
  const onPageChangeStart = React.useCallback(() => {
18
- if (!isEnabled()) {
24
+ if (!enabledRef.current || !focusedRef.current) {
19
25
  return;
20
26
  }
21
27
  clearKeyboardTimeout();
@@ -29,30 +35,9 @@ export function useKeyboardManager(isEnabled) {
29
35
 
30
36
  // Store timestamp for touch start
31
37
  startTimestampRef.current = Date.now();
32
- }, [clearKeyboardTimeout, isEnabled]);
33
- const onPageChangeConfirm = React.useCallback(force => {
34
- if (!isEnabled()) {
35
- return;
36
- }
37
- clearKeyboardTimeout();
38
- if (force) {
39
- // Always dismiss input, even if we don't have a ref to it
40
- // We might not have the ref if onPageChangeStart was never called
41
- // This can happen if page change was not from a gesture
42
- Keyboard.dismiss();
43
- } else {
44
- const input = previouslyFocusedTextInputRef.current;
45
-
46
- // Dismiss the keyboard only if an input was a focused before
47
- // This makes sure we don't dismiss input on going back and focusing an input
48
- input?.blur();
49
- }
50
-
51
- // Cleanup the ID on successful page change
52
- previouslyFocusedTextInputRef.current = undefined;
53
- }, [clearKeyboardTimeout, isEnabled]);
38
+ }, [clearKeyboardTimeout]);
54
39
  const onPageChangeCancel = React.useCallback(() => {
55
- if (!isEnabled()) {
40
+ if (!enabledRef.current || !focusedRef.current) {
56
41
  return;
57
42
  }
58
43
  clearKeyboardTimeout();
@@ -77,7 +62,67 @@ export function useKeyboardManager(isEnabled) {
77
62
  previouslyFocusedTextInputRef.current = undefined;
78
63
  }
79
64
  }
80
- }, [clearKeyboardTimeout, isEnabled]);
65
+ }, [clearKeyboardTimeout]);
66
+ const onPageChangeConfirm = React.useCallback(({
67
+ gesture,
68
+ active,
69
+ closing
70
+ }) => {
71
+ if (!enabledRef.current || !focusedRef.current) {
72
+ return;
73
+ }
74
+ if (!closing) {
75
+ onPageChangeCancel();
76
+ return;
77
+ }
78
+ clearKeyboardTimeout();
79
+ if (!gesture) {
80
+ // Always dismiss input, even if we don't have a ref to it
81
+ // We might not have the ref if onPageChangeStart was never called
82
+ // This can happen if page change was not from a gesture
83
+ Keyboard.dismiss();
84
+ } else if (active) {
85
+ const input = previouslyFocusedTextInputRef.current;
86
+
87
+ // Dismiss the keyboard only if an input was a focused before
88
+ // This makes sure we don't dismiss input on going back and focusing an input
89
+ input?.blur();
90
+ }
91
+
92
+ // Cleanup the ID on successful page change
93
+ previouslyFocusedTextInputRef.current = undefined;
94
+ }, [clearKeyboardTimeout, onPageChangeCancel]);
95
+
96
+ // Dismiss keyboard when screen loses focus (e.g. when pushing a new screen).
97
+ // This handles the "navigate forward" case so we don't dismiss the new screen's
98
+ // auto-focused input from handleTransition.
99
+ React.useLayoutEffect(() => {
100
+ if (enabledRef.current && !focused) {
101
+ Keyboard.dismiss();
102
+ }
103
+ }, [focused]);
104
+
105
+ // Dismiss keyboard if native focus is restored to an input in an unfocused screen.
106
+ // This can happen after dismissing a native alert when `autoFocus` is used on iOS.
107
+ React.useEffect(() => {
108
+ const blurInputInScreen = () => {
109
+ if (focusedRef.current || !enabledRef.current) {
110
+ return;
111
+ }
112
+ const input = TextInput.State.currentlyFocusedInput();
113
+ if (input && contentRef.current?.contains(input)) {
114
+ input.blur();
115
+ }
116
+ };
117
+ const subscriptions = [Keyboard.addListener('keyboardWillShow', blurInputInScreen), Keyboard.addListener('keyboardDidShow', blurInputInScreen)];
118
+ return () => {
119
+ subscriptions.forEach(subscription => subscription.remove());
120
+ };
121
+ }, [contentRef]);
122
+ React.useLayoutEffect(() => {
123
+ enabledRef.current = enabled;
124
+ focusedRef.current = focused;
125
+ });
81
126
  React.useEffect(() => {
82
127
  return () => clearKeyboardTimeout();
83
128
  }, [clearKeyboardTimeout]);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Keyboard","TextInput","useKeyboardManager","isEnabled","previouslyFocusedTextInputRef","useRef","undefined","startTimestampRef","keyboardTimeoutRef","clearKeyboardTimeout","useCallback","current","clearTimeout","onPageChangeStart","input","State","currentlyFocusedInput","blur","Date","now","onPageChangeConfirm","force","dismiss","onPageChangeCancel","setTimeout","focus","useEffect"],"sourceRoot":"../../../src","sources":["utils/useKeyboardManager.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Keyboard","TextInput","useKeyboardManager","enabled","focused","contentRef","previouslyFocusedTextInputRef","useRef","undefined","startTimestampRef","keyboardTimeoutRef","enabledRef","focusedRef","clearKeyboardTimeout","useCallback","current","clearTimeout","onPageChangeStart","input","State","currentlyFocusedInput","blur","Date","now","onPageChangeCancel","setTimeout","focus","onPageChangeConfirm","gesture","active","closing","dismiss","useLayoutEffect","useEffect","blurInputInScreen","contains","subscriptions","addListener","forEach","subscription","remove"],"sourceRoot":"../../../src","sources":["utils/useKeyboardManager.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,20 +2,21 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { View } from 'react-native';
5
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
6
- const Dummy = ({
5
+ import { GestureHandlerContext } from "../utils/GestureHandlerContext.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function GestureDetector({
8
+ gesture,
7
9
  children
8
- }) => /*#__PURE__*/_jsx(_Fragment, {
9
- children: children
10
- });
11
- export const PanGestureHandler = Dummy;
10
+ }) {
11
+ return /*#__PURE__*/_jsx(GestureHandlerContext.Provider, {
12
+ value: gesture ?? null,
13
+ children: children
14
+ });
15
+ }
16
+
17
+ // eslint-disable-next-line @eslint-react/hooks-extra/no-unnecessary-use-prefix, @eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks
18
+ export function usePanGesture(_config) {
19
+ return undefined;
20
+ }
12
21
  export const GestureHandlerRootView = View;
13
- export const GestureState = {
14
- UNDETERMINED: 0,
15
- FAILED: 1,
16
- BEGAN: 2,
17
- CANCELLED: 3,
18
- ACTIVE: 4,
19
- END: 5
20
- };
21
22
  //# sourceMappingURL=GestureHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Fragment","_Fragment","jsx","_jsx","Dummy","children","PanGestureHandler","GestureHandlerRootView","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"sourceRoot":"../../../src","sources":["views/GestureHandler.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAGpC,MAAMC,KAAU,GAAGA,CAAC;EAAEC;AAAwC,CAAC,kBAC7DF,IAAA,CAAAF,SAAA;EAAAI,QAAA,EAAGA;AAAQ,CAAG,CACf;AAED,OAAO,MAAMC,iBAAiB,GAC5BF,KAAyD;AAE3D,OAAO,MAAMG,sBAAsB,GAAGR,IAAI;AAE1C,OAAO,MAAMS,YAAY,GAAG;EAC1BC,YAAY,EAAE,CAAC;EACfC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAE,CAAC;EACZC,MAAM,EAAE,CAAC;EACTC,GAAG,EAAE;AACP,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","GestureHandlerContext","jsx","_jsx","GestureDetector","gesture","children","Provider","value","usePanGesture","_config","undefined","GestureHandlerRootView"],"sourceRoot":"../../../src","sources":["views/GestureHandler.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAQ,cAAc;AAMnC,SAASC,qBAAqB,QAAQ,mCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvE,OAAO,SAASC,eAAeA,CAAC;EAC9BC,OAAO;EACPC;AAIF,CAAC,EAAE;EACD,oBACEH,IAAA,CAACF,qBAAqB,CAACM,QAAQ;IAACC,KAAK,EAAEH,OAAO,IAAI,IAAK;IAAAC,QAAA,EACpDA;EAAQ,CACqB,CAAC;AAErC;;AAEA;AACA,OAAO,SAASG,aAAaA,CAACC,OAAyB,EAAE;EACvD,OAAOC,SAAS;AAClB;AAEA,OAAO,MAAMC,sBAAsB,GAAGZ,IAAI","ignoreList":[]}
@@ -1,18 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
- import { PanGestureHandler as PanGestureHandlerNative } from 'react-native-gesture-handler';
5
- import { GestureHandlerRefContext } from "../utils/GestureHandlerRefContext.js";
4
+ import { GestureDetector as GestureDetectorNative, usePanGesture } from 'react-native-gesture-handler';
5
+ import { GestureHandlerContext } from "../utils/GestureHandlerContext.js";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export function PanGestureHandler(props) {
8
- const gestureRef = React.useRef(null);
9
- return /*#__PURE__*/_jsx(GestureHandlerRefContext.Provider, {
10
- value: gestureRef,
11
- children: /*#__PURE__*/_jsx(PanGestureHandlerNative, {
12
- ...props,
13
- ref: gestureRef
7
+ export function GestureDetector({
8
+ gesture,
9
+ children
10
+ }) {
11
+ if (gesture == null) {
12
+ throw new Error('The provided gesture is undefined. A valid gesture must be passed to the GestureDetector on native platforms.');
13
+ }
14
+ return /*#__PURE__*/_jsx(GestureHandlerContext.Provider, {
15
+ value: gesture,
16
+ children: /*#__PURE__*/_jsx(GestureDetectorNative, {
17
+ gesture: gesture,
18
+ children: children
14
19
  })
15
20
  });
16
21
  }
17
- export { GestureHandlerRootView, State as GestureState } from 'react-native-gesture-handler';
22
+ export { usePanGesture };
23
+ export { GestureHandlerRootView } from 'react-native-gesture-handler';
18
24
  //# sourceMappingURL=GestureHandlerNative.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","PanGestureHandler","PanGestureHandlerNative","GestureHandlerRefContext","jsx","_jsx","props","gestureRef","useRef","Provider","value","children","ref","GestureHandlerRootView","State","GestureState"],"sourceRoot":"../../../src","sources":["views/GestureHandlerNative.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,iBAAiB,IAAIC,uBAAuB,QAEvC,8BAA8B;AAErC,SAASC,wBAAwB,QAAQ,sCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7E,OAAO,SAASJ,iBAAiBA,CAACK,KAAkC,EAAE;EACpE,MAAMC,UAAU,GAAGP,KAAK,CAACQ,MAAM,CAA0B,IAAI,CAAC;EAE9D,oBACEH,IAAA,CAACF,wBAAwB,CAACM,QAAQ;IAACC,KAAK,EAAEH,UAAW;IAAAI,QAAA,eACnDN,IAAA,CAACH,uBAAuB;MAAA,GAAKI,KAAK;MAAEM,GAAG,EAAEL;IAAW,CAAE;EAAC,CACtB,CAAC;AAExC;AAGA,SACEM,sBAAsB,EACtBC,KAAK,IAAIC,YAAY,QAChB,8BAA8B","ignoreList":[]}
1
+ {"version":3,"names":["React","GestureDetector","GestureDetectorNative","usePanGesture","GestureHandlerContext","jsx","_jsx","gesture","children","Error","Provider","value","GestureHandlerRootView"],"sourceRoot":"../../../src","sources":["views/GestureHandlerNative.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,eAAe,IAAIC,qBAAqB,EAExCC,aAAa,QACR,8BAA8B;AAErC,SAASC,qBAAqB,QAAQ,mCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvE,OAAO,SAASL,eAAeA,CAAC;EAC9BM,OAAO;EACPC;AAIF,CAAC,EAAE;EACD,IAAID,OAAO,IAAI,IAAI,EAAE;IACnB,MAAM,IAAIE,KAAK,CACb,+GACF,CAAC;EACH;EAEA,oBACEH,IAAA,CAACF,qBAAqB,CAACM,QAAQ;IAACC,KAAK,EAAEJ,OAAQ;IAAAC,QAAA,eAC7CF,IAAA,CAACJ,qBAAqB;MAACK,OAAO,EAAEA,OAAQ;MAAAC,QAAA,EACrCA;IAAQ,CACY;EAAC,CACM,CAAC;AAErC;AAEA,SAASL,aAAa;AAEtB,SAASS,sBAAsB,QAAQ,8BAA8B","ignoreList":[]}
@@ -11,6 +11,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  export const Header = /*#__PURE__*/React.memo(function Header({
12
12
  back,
13
13
  progress,
14
+ inverted,
14
15
  options,
15
16
  route,
16
17
  navigation,
@@ -36,11 +37,12 @@ export const Header = /*#__PURE__*/React.memo(function Header({
36
37
  });
37
38
  }
38
39
  }, 50), [navigation, route.key]);
39
- const isModal = React.useContext(ModalPresentationContext);
40
- const isParentHeaderShown = React.useContext(HeaderShownContext);
40
+ const isModal = React.use(ModalPresentationContext);
41
+ const isParentHeaderShown = React.use(HeaderShownContext);
41
42
  const statusBarHeight = options.headerStatusBarHeight !== undefined ? options.headerStatusBarHeight : isModal || isParentHeaderShown ? 0 : insets.top;
42
43
  return /*#__PURE__*/_jsx(HeaderSegment, {
43
44
  ...options,
45
+ inverted: inverted,
44
46
  title: getHeaderTitle(options, route.name),
45
47
  progress: progress,
46
48
  modal: isModal,
@@ -1 +1 @@
1
- {"version":3,"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","ModalPresentationContext","throttle","HeaderSegment","jsx","_jsx","Header","memo","back","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","modal","onGoBack","backHref","href"],"sourceRoot":"../../../../src","sources":["views/Header/Header.tsx"],"mappings":";;AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,4BAA4B;AAC/E,SAASC,YAAY,QAAQ,0BAA0B;AACvD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE,SAASC,wBAAwB,QAAQ,yCAAsC;AAC/E,SAASC,QAAQ,QAAQ,yBAAsB;AAC/C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhD,OAAO,MAAMC,MAAM,gBAAGP,KAAK,CAACQ,IAAI,CAAC,SAASD,MAAMA,CAAC;EAC/CE,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,UAAU;EACVC;AACgB,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAGd,iBAAiB,CAAC,CAAC;EAElC,IAAIe,aAAa;;EAEjB;EACA;EACA,IAAIL,OAAO,CAACM,eAAe,KAAKC,SAAS,EAAE;IACzCF,aAAa,GAAGL,OAAO,CAACM,eAAe;EACzC,CAAC,MAAM,IAAIR,IAAI,EAAE;IACfO,aAAa,GAAGP,IAAI,CAACU,KAAK;EAC5B;;EAEA;EACA,MAAMC,MAAM,GAAGpB,KAAK,CAACqB,WAAW,CAC9BlB,QAAQ,CAAC,MAAM;IACb,IAAIU,UAAU,CAACS,SAAS,CAAC,CAAC,IAAIT,UAAU,CAACU,SAAS,CAAC,CAAC,EAAE;MACpDV,UAAU,CAACW,QAAQ,CAAC;QAClB,GAAGzB,YAAY,CAAC0B,GAAG,CAAC,CAAC;QACrBC,MAAM,EAAEd,KAAK,CAACe;MAChB,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC,EACN,CAACd,UAAU,EAAED,KAAK,CAACe,GAAG,CACxB,CAAC;EAED,MAAMC,OAAO,GAAG5B,KAAK,CAAC6B,UAAU,CAAC3B,wBAAwB,CAAC;EAC1D,MAAM4B,mBAAmB,GAAG9B,KAAK,CAAC6B,UAAU,CAAC/B,kBAAkB,CAAC;EAEhE,MAAMiC,eAAe,GACnBpB,OAAO,CAACqB,qBAAqB,KAAKd,SAAS,GACvCP,OAAO,CAACqB,qBAAqB,GAC7BJ,OAAO,IAAIE,mBAAmB,GAC5B,CAAC,GACDf,MAAM,CAACkB,GAAG;EAElB,oBACE3B,IAAA,CAACF,aAAa;IAAA,GACRO,OAAO;IACXQ,KAAK,EAAEtB,cAAc,CAACc,OAAO,EAAEC,KAAK,CAACsB,IAAI,CAAE;IAC3CxB,QAAQ,EAAEA,QAAS;IACnByB,KAAK,EAAEP,OAAQ;IACfX,eAAe,EACbN,OAAO,CAACM,eAAe,KAAKC,SAAS,GACjCP,OAAO,CAACM,eAAe,GACvBD,aACL;IACDgB,qBAAqB,EAAED,eAAgB;IACvCK,QAAQ,EAAE3B,IAAI,GAAGW,MAAM,GAAGF,SAAU;IACpCmB,QAAQ,EAAE5B,IAAI,GAAGA,IAAI,CAAC6B,IAAI,GAAGpB,SAAU;IACvCJ,iBAAiB,EAAEA;EAAkB,CACtC,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","ModalPresentationContext","throttle","HeaderSegment","jsx","_jsx","Header","memo","back","progress","inverted","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","pop","source","key","isModal","use","isParentHeaderShown","statusBarHeight","headerStatusBarHeight","top","name","modal","onGoBack","backHref","href"],"sourceRoot":"../../../../src","sources":["views/Header/Header.tsx"],"mappings":";;AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,4BAA4B;AAC/E,SAASC,YAAY,QAAQ,0BAA0B;AACvD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE,SAASC,wBAAwB,QAAQ,yCAAsC;AAC/E,SAASC,QAAQ,QAAQ,yBAAsB;AAC/C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhD,OAAO,MAAMC,MAAM,gBAAGP,KAAK,CAACQ,IAAI,CAAC,SAASD,MAAMA,CAAC;EAC/CE,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,UAAU;EACVC;AACgB,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAGf,iBAAiB,CAAC,CAAC;EAElC,IAAIgB,aAAa;;EAEjB;EACA;EACA,IAAIL,OAAO,CAACM,eAAe,KAAKC,SAAS,EAAE;IACzCF,aAAa,GAAGL,OAAO,CAACM,eAAe;EACzC,CAAC,MAAM,IAAIT,IAAI,EAAE;IACfQ,aAAa,GAAGR,IAAI,CAACW,KAAK;EAC5B;;EAEA;EACA,MAAMC,MAAM,GAAGrB,KAAK,CAACsB,WAAW,CAC9BnB,QAAQ,CAAC,MAAM;IACb,IAAIW,UAAU,CAACS,SAAS,CAAC,CAAC,IAAIT,UAAU,CAACU,SAAS,CAAC,CAAC,EAAE;MACpDV,UAAU,CAACW,QAAQ,CAAC;QAClB,GAAG1B,YAAY,CAAC2B,GAAG,CAAC,CAAC;QACrBC,MAAM,EAAEd,KAAK,CAACe;MAChB,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC,EACN,CAACd,UAAU,EAAED,KAAK,CAACe,GAAG,CACxB,CAAC;EAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,GAAG,CAAC5B,wBAAwB,CAAC;EACnD,MAAM6B,mBAAmB,GAAG/B,KAAK,CAAC8B,GAAG,CAAChC,kBAAkB,CAAC;EAEzD,MAAMkC,eAAe,GACnBpB,OAAO,CAACqB,qBAAqB,KAAKd,SAAS,GACvCP,OAAO,CAACqB,qBAAqB,GAC7BJ,OAAO,IAAIE,mBAAmB,GAC5B,CAAC,GACDf,MAAM,CAACkB,GAAG;EAElB,oBACE5B,IAAA,CAACF,aAAa;IAAA,GACRQ,OAAO;IACXD,QAAQ,EAAEA,QAAS;IACnBS,KAAK,EAAEvB,cAAc,CAACe,OAAO,EAAEC,KAAK,CAACsB,IAAI,CAAE;IAC3CzB,QAAQ,EAAEA,QAAS;IACnB0B,KAAK,EAAEP,OAAQ;IACfX,eAAe,EACbN,OAAO,CAACM,eAAe,KAAKC,SAAS,GACjCP,OAAO,CAACM,eAAe,GACvBD,aACL;IACDgB,qBAAqB,EAAED,eAAgB;IACvCK,QAAQ,EAAE5B,IAAI,GAAGY,MAAM,GAAGF,SAAU;IACpCmB,QAAQ,EAAE7B,IAAI,GAAGA,IAAI,CAAC8B,IAAI,GAAGpB,SAAU;IACvCJ,iBAAiB,EAAEA;EAAkB,CACtC,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements';
4
- import { NavigationProvider, useLinkBuilder } from '@react-navigation/native';
4
+ import { ActivityView } from '@react-navigation/elements/internal';
5
+ import { NavigationProvider, useLinkBuilder, useLocale } from '@react-navigation/native';
5
6
  import * as React from 'react';
6
7
  import { StyleSheet, View } from 'react-native';
7
- import { forNoAnimation, forSlideLeft, forSlideRight, forSlideUp } from "../../TransitionConfigs/HeaderStyleInterpolators.js";
8
+ import { forNoAnimation, forSlideLeft, forSlideUp } from "../../TransitionConfigs/HeaderStyleInterpolators.js";
9
+ import { getInvertedMultiplier } from "../../utils/getInvertedMultiplier.js";
8
10
  import { Header } from "./Header.js";
9
11
  import { jsx as _jsx } from "react/jsx-runtime";
10
12
  export function HeaderContainer({
@@ -12,17 +14,21 @@ export function HeaderContainer({
12
14
  scenes,
13
15
  getPreviousScene,
14
16
  getFocusedRoute,
17
+ contentHeight,
15
18
  onContentHeightChange,
16
19
  style
17
20
  }) {
18
21
  const focusedRoute = getFocusedRoute();
19
- const parentHeaderBack = React.useContext(HeaderBackContext);
22
+ const parentHeaderBack = React.use(HeaderBackContext);
20
23
  const {
21
24
  buildHref
22
25
  } = useLinkBuilder();
26
+ const {
27
+ direction
28
+ } = useLocale();
23
29
  return /*#__PURE__*/_jsx(View, {
24
30
  style: [styles.container, style],
25
- children: scenes.slice(-2).map((scene, i, self) => {
31
+ children: scenes.map((scene, i, self) => {
26
32
  if (mode === 'screen' && i !== self.length - 1 || !scene) {
27
33
  return null;
28
34
  }
@@ -60,6 +66,9 @@ export function HeaderContainer({
60
66
  headerShown: previousHeaderShown = true,
61
67
  headerMode: previousHeaderMode
62
68
  } = previousDescriptor?.options || {};
69
+ const {
70
+ headerTransparent: nextHeaderTransparent
71
+ } = nextDescriptor?.options || {};
63
72
 
64
73
  // If any of the next screens don't have a header or header is part of the screen
65
74
  // Then we need to move this header offscreen so that it doesn't cover it
@@ -76,37 +85,67 @@ export function HeaderContainer({
76
85
  const isHeaderStatic = (previousHeaderShown === false || previousHeaderMode === 'screen') &&
77
86
  // We still need to animate when coming back from next scene
78
87
  // A hacky way to check this is if the next scene exists
79
- !nextDescriptor || nextHeaderlessScene;
88
+ !nextDescriptor ||
89
+ // If next header is transparent, we want to treat this header as static
90
+ // Otherwise it may show through the next header
91
+ nextHeaderTransparent || nextHeaderlessScene;
80
92
  const props = {
81
93
  back: headerBack,
82
94
  progress: scene.progress,
95
+ inverted: getInvertedMultiplier(isHeaderStatic && nextHeaderlessGestureDirection ? nextHeaderlessGestureDirection : scene.descriptor.options.gestureDirection, direction === 'rtl'),
83
96
  options: scene.descriptor.options,
84
97
  route: scene.descriptor.route,
85
98
  navigation: scene.descriptor.navigation,
86
- styleInterpolator: mode === 'float' ? isHeaderStatic ? nextHeaderlessGestureDirection === 'vertical' || nextHeaderlessGestureDirection === 'vertical-inverted' ? forSlideUp : nextHeaderlessGestureDirection === 'horizontal-inverted' ? forSlideRight : forSlideLeft : headerStyleInterpolator : forNoAnimation
99
+ styleInterpolator: mode === 'float' ? isHeaderStatic ? nextHeaderlessGestureDirection === 'vertical' || nextHeaderlessGestureDirection === 'vertical-inverted' ? forSlideUp : forSlideLeft : headerStyleInterpolator : forNoAnimation
87
100
  };
88
- return /*#__PURE__*/_jsx(NavigationProvider, {
89
- navigation: scene.descriptor.navigation,
90
- route: scene.descriptor.route,
91
- children: /*#__PURE__*/_jsx(View, {
92
- onLayout: onContentHeightChange ? e => {
93
- const {
94
- height
95
- } = e.nativeEvent.layout;
101
+ const onRef = node => {
102
+ node?.measure((_x, _y, _width, height) => {
103
+ if (height && !contentHeight?.measured) {
96
104
  onContentHeightChange({
97
105
  route: scene.descriptor.route,
98
106
  height
99
107
  });
100
- } : undefined,
101
- "aria-hidden": !isFocused,
108
+ }
109
+ });
110
+ };
111
+ const onLayout = e => {
112
+ const {
113
+ height
114
+ } = e.nativeEvent.layout;
115
+ onContentHeightChange({
116
+ route: scene.descriptor.route,
117
+ height
118
+ });
119
+ };
120
+ return /*#__PURE__*/_jsx(NavigationProvider, {
121
+ navigation: scene.descriptor.navigation,
122
+ route: scene.descriptor.route,
123
+ children: /*#__PURE__*/_jsx(View, {
102
124
  style: [
103
- // Avoid positioning the focused header absolutely
125
+ // Avoid absolutely positioning the focused header unnecessarily
104
126
  // Otherwise accessibility tools don't seem to be able to find it
105
- mode === 'float' && !isFocused || headerTransparent ? styles.header : null, {
127
+ mode === 'float' && !isFocused || headerTransparent ? [styles.absolute, mode === 'screen' ?
128
+ // For transparent headers, specify a min height
129
+ // This is needed for screen readers, and testing tools on Android
130
+ // For float header, it's handled in CardStack
131
+ {
132
+ minHeight: contentHeight?.value
133
+ } : null] : null, {
106
134
  pointerEvents: isFocused ? 'box-none' : 'none'
107
135
  }],
108
- children: header !== undefined ? header(props) : /*#__PURE__*/_jsx(Header, {
109
- ...props
136
+ children: /*#__PURE__*/_jsx(View, {
137
+ ref: onRef,
138
+ onLayout: onLayout,
139
+ style: {
140
+ pointerEvents: 'box-none'
141
+ },
142
+ children: /*#__PURE__*/_jsx(ActivityView, {
143
+ mode: isFocused ? 'normal' : 'inert',
144
+ visible: true,
145
+ children: header !== undefined ? header(props) : /*#__PURE__*/_jsx(Header, {
146
+ ...props
147
+ })
148
+ })
110
149
  })
111
150
  })
112
151
  }, scene.descriptor.route.key);
@@ -117,7 +156,7 @@ const styles = StyleSheet.create({
117
156
  container: {
118
157
  pointerEvents: 'box-none'
119
158
  },
120
- header: {
159
+ absolute: {
121
160
  position: 'absolute',
122
161
  top: 0,
123
162
  start: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["getHeaderTitle","HeaderBackContext","NavigationProvider","useLinkBuilder","React","StyleSheet","View","forNoAnimation","forSlideLeft","forSlideRight","forSlideUp","Header","jsx","_jsx","HeaderContainer","mode","scenes","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","useContext","buildHref","styles","container","children","slice","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","href","params","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","navigation","styleInterpolator","onLayout","e","height","nativeEvent","layout","undefined","pointerEvents","create","position","top","start","end"],"sourceRoot":"../../../../src","sources":["views/Header/HeaderContainer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getHeaderTitle","HeaderBackContext","ActivityView","NavigationProvider","useLinkBuilder","useLocale","React","StyleSheet","View","forNoAnimation","forSlideLeft","forSlideUp","getInvertedMultiplier","Header","jsx","_jsx","HeaderContainer","mode","scenes","getPreviousScene","getFocusedRoute","contentHeight","onContentHeightChange","style","focusedRoute","parentHeaderBack","use","buildHref","direction","styles","container","children","map","scene","i","self","length","header","headerMode","headerShown","headerTransparent","headerStyleInterpolator","descriptor","options","isFocused","key","route","previousScene","headerBack","title","name","href","params","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderTransparent","nextHeaderlessScene","slice","find","currentHeaderShown","currentHeaderMode","gestureDirection","nextHeaderlessGestureDirection","isHeaderStatic","props","back","progress","inverted","navigation","styleInterpolator","onRef","node","measure","_x","_y","_width","height","measured","onLayout","e","nativeEvent","layout","absolute","minHeight","value","pointerEvents","ref","visible","undefined","create","position","top","start","end"],"sourceRoot":"../../../../src","sources":["views/Header/HeaderContainer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { getDefaultHeaderHeight, Header, HeaderBackButton, HeaderTitle, useFrameSize } from '@react-navigation/elements';
4
- import { useLocale } from '@react-navigation/native';
5
4
  import * as React from 'react';
6
5
  import { StyleSheet } from 'react-native';
7
6
  import { jsx as _jsx } from "react/jsx-runtime";
8
7
  export function HeaderSegment(props) {
9
- const {
10
- direction
11
- } = useLocale();
12
8
  const layout = useFrameSize(frame => frame, true);
13
9
  const {
14
10
  progress,
11
+ inverted,
15
12
  modal,
16
13
  onGoBack,
17
14
  backHref,
@@ -20,7 +17,7 @@ export function HeaderSegment(props) {
20
17
  ...props
21
18
  }) : undefined,
22
19
  headerRight: right,
23
- headerBackImage,
20
+ headerBackIcon,
24
21
  headerBackTitle,
25
22
  headerBackButtonDisplayMode,
26
23
  headerBackTruncatedTitle,
@@ -44,7 +41,7 @@ export function HeaderSegment(props) {
44
41
  });
45
42
  const {
46
43
  height = defaultHeight
47
- } = StyleSheet.flatten(customHeaderStyle || {});
44
+ } = StyleSheet.flatten(customHeaderStyle) ?? {};
48
45
  const headerHeight = typeof height === 'number' ? height : defaultHeight;
49
46
  const {
50
47
  titleStyle,
@@ -58,7 +55,7 @@ export function HeaderSegment(props) {
58
55
  next: progress.next && {
59
56
  progress: progress.next
60
57
  },
61
- direction,
58
+ inverted,
62
59
  layouts: {
63
60
  header: {
64
61
  height: headerHeight,
@@ -66,11 +63,11 @@ export function HeaderSegment(props) {
66
63
  },
67
64
  screen: layout
68
65
  }
69
- }), [styleInterpolator, progress, direction, headerHeight, layout]);
66
+ }), [styleInterpolator, progress, inverted, headerHeight, layout]);
70
67
  const headerLeft = left ? props => left({
71
68
  ...props,
72
69
  href: backHref,
73
- backImage: headerBackImage,
70
+ icon: headerBackIcon,
74
71
  accessibilityLabel: headerBackAccessibilityLabel,
75
72
  testID: headerBackTestID,
76
73
  allowFontScaling: headerBackAllowFontScaling,