@react-navigation/stack 7.8.4 → 7.8.5

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.
@@ -2,12 +2,16 @@
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
+ }) {
6
9
  // Numeric id of the previously focused text input
7
10
  // When a gesture didn't change the tab, we can restore the focused input with this
8
11
  const previouslyFocusedTextInputRef = React.useRef(undefined);
9
12
  const startTimestampRef = React.useRef(0);
10
13
  const keyboardTimeoutRef = React.useRef(undefined);
14
+ const enabledRef = React.useRef(enabled);
11
15
  const clearKeyboardTimeout = React.useCallback(() => {
12
16
  if (keyboardTimeoutRef.current !== undefined) {
13
17
  clearTimeout(keyboardTimeoutRef.current);
@@ -15,7 +19,7 @@ export function useKeyboardManager(isEnabled) {
15
19
  }
16
20
  }, []);
17
21
  const onPageChangeStart = React.useCallback(() => {
18
- if (!isEnabled()) {
22
+ if (!enabledRef.current) {
19
23
  return;
20
24
  }
21
25
  clearKeyboardTimeout();
@@ -29,30 +33,9 @@ export function useKeyboardManager(isEnabled) {
29
33
 
30
34
  // Store timestamp for touch start
31
35
  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]);
36
+ }, [clearKeyboardTimeout]);
54
37
  const onPageChangeCancel = React.useCallback(() => {
55
- if (!isEnabled()) {
38
+ if (!enabledRef.current) {
56
39
  return;
57
40
  }
58
41
  clearKeyboardTimeout();
@@ -77,7 +60,48 @@ export function useKeyboardManager(isEnabled) {
77
60
  previouslyFocusedTextInputRef.current = undefined;
78
61
  }
79
62
  }
80
- }, [clearKeyboardTimeout, isEnabled]);
63
+ }, [clearKeyboardTimeout]);
64
+ const onPageChangeConfirm = React.useCallback(({
65
+ gesture,
66
+ active,
67
+ closing
68
+ }) => {
69
+ if (!enabledRef.current) {
70
+ return;
71
+ }
72
+ if (!closing) {
73
+ onPageChangeCancel();
74
+ return;
75
+ }
76
+ clearKeyboardTimeout();
77
+ if (!gesture) {
78
+ // Always dismiss input, even if we don't have a ref to it
79
+ // We might not have the ref if onPageChangeStart was never called
80
+ // This can happen if page change was not from a gesture
81
+ Keyboard.dismiss();
82
+ } else if (active) {
83
+ const input = previouslyFocusedTextInputRef.current;
84
+
85
+ // Dismiss the keyboard only if an input was a focused before
86
+ // This makes sure we don't dismiss input on going back and focusing an input
87
+ input?.blur();
88
+ }
89
+
90
+ // Cleanup the ID on successful page change
91
+ previouslyFocusedTextInputRef.current = undefined;
92
+ }, [clearKeyboardTimeout, onPageChangeCancel]);
93
+
94
+ // Dismiss keyboard when screen loses focus (e.g. when pushing a new screen).
95
+ // This handles the "navigate forward" case so we don't dismiss the new screen's
96
+ // auto-focused input from handleTransition.
97
+ React.useLayoutEffect(() => {
98
+ if (enabledRef.current && !focused) {
99
+ Keyboard.dismiss();
100
+ }
101
+ }, [focused]);
102
+ React.useLayoutEffect(() => {
103
+ enabledRef.current = enabled;
104
+ });
81
105
  React.useEffect(() => {
82
106
  return () => clearKeyboardTimeout();
83
107
  }, [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","previouslyFocusedTextInputRef","useRef","undefined","startTimestampRef","keyboardTimeoutRef","enabledRef","clearKeyboardTimeout","useCallback","current","clearTimeout","onPageChangeStart","input","State","currentlyFocusedInput","blur","Date","now","onPageChangeCancel","setTimeout","focus","onPageChangeConfirm","gesture","active","closing","dismiss","useLayoutEffect","useEffect"],"sourceRoot":"../../../src","sources":["utils/useKeyboardManager.tsx"],"mappings":"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","ignoreList":[]}
@@ -48,17 +48,18 @@ function CardContainerInner({
48
48
  direction
49
49
  } = useLocale();
50
50
  const parentHeaderHeight = React.useContext(HeaderHeightContext);
51
+ const {
52
+ options
53
+ } = scene.descriptor;
54
+ const enabled = focused && options.keyboardHandlingEnabled !== false;
51
55
  const {
52
56
  onPageChangeStart,
53
57
  onPageChangeCancel,
54
58
  onPageChangeConfirm
55
- } = useKeyboardManager(React.useCallback(() => {
56
- const {
57
- options,
58
- navigation
59
- } = scene.descriptor;
60
- return navigation.isFocused() && options.keyboardHandlingEnabled !== false;
61
- }, [scene.descriptor]));
59
+ } = useKeyboardManager({
60
+ enabled,
61
+ focused
62
+ });
62
63
  const handleOpen = () => {
63
64
  const {
64
65
  route
@@ -115,13 +116,11 @@ function CardContainerInner({
115
116
  const {
116
117
  route
117
118
  } = scene.descriptor;
118
- if (!gesture) {
119
- onPageChangeConfirm?.(true);
120
- } else if (active && closing) {
121
- onPageChangeConfirm?.(false);
122
- } else {
123
- onPageChangeCancel?.();
124
- }
119
+ onPageChangeConfirm?.({
120
+ gesture,
121
+ active,
122
+ closing
123
+ });
125
124
  onTransitionStart?.({
126
125
  route
127
126
  }, closing);
@@ -1 +1 @@
1
- {"version":3,"names":["getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","useLinkBuilder","useLocale","useTheme","React","StyleSheet","View","ModalPresentationContext","useKeyboardManager","Card","CardA11yWrapper","jsx","_jsx","jsxs","_jsxs","EPSILON","CardContainerInner","interpolationIndex","index","active","opening","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","layout","onCloseRoute","onOpenRoute","onGestureCancel","onGestureEnd","onGestureStart","onTransitionEnd","onTransitionStart","preloaded","renderHeader","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","scene","wrapperRef","useRef","direction","parentHeaderHeight","useContext","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","useCallback","options","navigation","descriptor","isFocused","keyboardHandlingEnabled","handleOpen","route","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","current","setInert","insets","top","right","bottom","left","colors","useEffect","listener","progress","next","addListener","value","removeListener","presentation","animation","cardOverlay","cardOverlayEnabled","cardShadowEnabled","cardStyle","cardStyleInterpolator","gestureDirection","gestureEnabled","gestureResponseDistance","gestureVelocityImpact","headerMode","headerShown","transitionSpec","buildHref","previousScene","backTitle","href","name","params","canGoBack","headerBack","useMemo","title","undefined","animated","ref","children","onOpen","onClose","overlay","overlayEnabled","shadowEnabled","onTransition","onGestureBegin","onGestureCanceled","styleInterpolator","pageOverflowEnabled","containerStyle","marginTop","contentStyle","backgroundColor","background","style","styles","container","Provider","mode","scenes","onContentHeightChange","header","render","CardContainer","memo","create","flex","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardContainer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","useLinkBuilder","useLocale","useTheme","React","StyleSheet","View","ModalPresentationContext","useKeyboardManager","Card","CardA11yWrapper","jsx","_jsx","jsxs","_jsxs","EPSILON","CardContainerInner","interpolationIndex","index","active","opening","closing","gesture","focused","modal","getPreviousScene","getFocusedRoute","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","layout","onCloseRoute","onOpenRoute","onGestureCancel","onGestureEnd","onGestureStart","onTransitionEnd","onTransitionStart","preloaded","renderHeader","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","scene","wrapperRef","useRef","direction","parentHeaderHeight","useContext","options","descriptor","enabled","keyboardHandlingEnabled","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","handleOpen","route","handleClose","handleGestureBegin","handleGestureCanceled","handleGestureEnd","handleTransition","current","setInert","insets","top","right","bottom","left","colors","useEffect","listener","progress","next","addListener","value","removeListener","presentation","animation","cardOverlay","cardOverlayEnabled","cardShadowEnabled","cardStyle","cardStyleInterpolator","gestureDirection","gestureEnabled","gestureResponseDistance","gestureVelocityImpact","headerMode","headerShown","transitionSpec","buildHref","previousScene","backTitle","href","name","params","canGoBack","headerBack","useMemo","title","undefined","animated","ref","children","onOpen","onClose","overlay","overlayEnabled","shadowEnabled","onTransition","onGestureBegin","onGestureCanceled","styleInterpolator","pageOverflowEnabled","containerStyle","marginTop","contentStyle","backgroundColor","background","style","styles","container","Provider","mode","scenes","onContentHeightChange","header","render","CardContainer","memo","create","flex","zIndex"],"sourceRoot":"../../../../src","sources":["views/Stack/CardContainer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,13 @@
1
- export declare function useKeyboardManager(isEnabled: () => boolean): {
1
+ export declare function useKeyboardManager({ enabled, focused, }: {
2
+ enabled: boolean;
3
+ focused: boolean;
4
+ }): {
2
5
  onPageChangeStart: () => void;
3
- onPageChangeConfirm: (force: boolean) => void;
6
+ onPageChangeConfirm: ({ gesture, active, closing, }: {
7
+ gesture: boolean;
8
+ active: boolean;
9
+ closing: boolean;
10
+ }) => void;
4
11
  onPageChangeCancel: () => void;
5
12
  };
6
13
  //# sourceMappingURL=useKeyboardManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardManager.d.ts","sourceRoot":"","sources":["../../../../src/utils/useKeyboardManager.tsx"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,OAAO;;iCAkC/C,OAAO;;EAiElB"}
1
+ {"version":3,"file":"useKeyboardManager.d.ts","sourceRoot":"","sources":["../../../../src/utils/useKeyboardManager.tsx"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;;yDAqEM;QACD,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB;;EAqDJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardContainer.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/CardContainer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardContainer.d.ts","sourceRoot":"","sources":["../../../../../src/views/Stack/CardContainer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/stack",
3
3
  "description": "Stack navigator component for iOS and Android with animated transitions and gestures",
4
- "version": "7.8.4",
4
+ "version": "7.8.5",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -91,5 +91,5 @@
91
91
  ]
92
92
  ]
93
93
  },
94
- "gitHead": "69573410534dc9a467ace6e749e82d32058b3092"
94
+ "gitHead": "bec4f7d19749fef6741a88d072c1cd2ab733f46d"
95
95
  }
@@ -1,12 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import { type HostInstance, Keyboard, TextInput } from 'react-native';
3
3
 
4
- export function useKeyboardManager(isEnabled: () => boolean) {
4
+ export function useKeyboardManager({
5
+ enabled,
6
+ focused,
7
+ }: {
8
+ enabled: boolean;
9
+ focused: boolean;
10
+ }) {
5
11
  // Numeric id of the previously focused text input
6
12
  // When a gesture didn't change the tab, we can restore the focused input with this
7
13
  const previouslyFocusedTextInputRef = React.useRef<HostInstance>(undefined);
8
14
  const startTimestampRef = React.useRef<number>(0);
9
15
  const keyboardTimeoutRef = React.useRef<NodeJS.Timeout>(undefined);
16
+ const enabledRef = React.useRef(enabled);
10
17
 
11
18
  const clearKeyboardTimeout = React.useCallback(() => {
12
19
  if (keyboardTimeoutRef.current !== undefined) {
@@ -16,7 +23,7 @@ export function useKeyboardManager(isEnabled: () => boolean) {
16
23
  }, []);
17
24
 
18
25
  const onPageChangeStart = React.useCallback(() => {
19
- if (!isEnabled()) {
26
+ if (!enabledRef.current) {
20
27
  return;
21
28
  }
22
29
 
@@ -32,37 +39,10 @@ export function useKeyboardManager(isEnabled: () => boolean) {
32
39
 
33
40
  // Store timestamp for touch start
34
41
  startTimestampRef.current = Date.now();
35
- }, [clearKeyboardTimeout, isEnabled]);
36
-
37
- const onPageChangeConfirm = React.useCallback(
38
- (force: boolean) => {
39
- if (!isEnabled()) {
40
- return;
41
- }
42
-
43
- clearKeyboardTimeout();
44
-
45
- if (force) {
46
- // Always dismiss input, even if we don't have a ref to it
47
- // We might not have the ref if onPageChangeStart was never called
48
- // This can happen if page change was not from a gesture
49
- Keyboard.dismiss();
50
- } else {
51
- const input = previouslyFocusedTextInputRef.current;
52
-
53
- // Dismiss the keyboard only if an input was a focused before
54
- // This makes sure we don't dismiss input on going back and focusing an input
55
- input?.blur();
56
- }
57
-
58
- // Cleanup the ID on successful page change
59
- previouslyFocusedTextInputRef.current = undefined;
60
- },
61
- [clearKeyboardTimeout, isEnabled]
62
- );
42
+ }, [clearKeyboardTimeout]);
63
43
 
64
44
  const onPageChangeCancel = React.useCallback(() => {
65
- if (!isEnabled()) {
45
+ if (!enabledRef.current) {
66
46
  return;
67
47
  }
68
48
 
@@ -89,7 +69,60 @@ export function useKeyboardManager(isEnabled: () => boolean) {
89
69
  previouslyFocusedTextInputRef.current = undefined;
90
70
  }
91
71
  }
92
- }, [clearKeyboardTimeout, isEnabled]);
72
+ }, [clearKeyboardTimeout]);
73
+
74
+ const onPageChangeConfirm = React.useCallback(
75
+ ({
76
+ gesture,
77
+ active,
78
+ closing,
79
+ }: {
80
+ gesture: boolean;
81
+ active: boolean;
82
+ closing: boolean;
83
+ }) => {
84
+ if (!enabledRef.current) {
85
+ return;
86
+ }
87
+
88
+ if (!closing) {
89
+ onPageChangeCancel();
90
+ return;
91
+ }
92
+
93
+ clearKeyboardTimeout();
94
+
95
+ if (!gesture) {
96
+ // Always dismiss input, even if we don't have a ref to it
97
+ // We might not have the ref if onPageChangeStart was never called
98
+ // This can happen if page change was not from a gesture
99
+ Keyboard.dismiss();
100
+ } else if (active) {
101
+ const input = previouslyFocusedTextInputRef.current;
102
+
103
+ // Dismiss the keyboard only if an input was a focused before
104
+ // This makes sure we don't dismiss input on going back and focusing an input
105
+ input?.blur();
106
+ }
107
+
108
+ // Cleanup the ID on successful page change
109
+ previouslyFocusedTextInputRef.current = undefined;
110
+ },
111
+ [clearKeyboardTimeout, onPageChangeCancel]
112
+ );
113
+
114
+ // Dismiss keyboard when screen loses focus (e.g. when pushing a new screen).
115
+ // This handles the "navigate forward" case so we don't dismiss the new screen's
116
+ // auto-focused input from handleTransition.
117
+ React.useLayoutEffect(() => {
118
+ if (enabledRef.current && !focused) {
119
+ Keyboard.dismiss();
120
+ }
121
+ }, [focused]);
122
+
123
+ React.useLayoutEffect(() => {
124
+ enabledRef.current = enabled;
125
+ });
93
126
 
94
127
  React.useEffect(() => {
95
128
  return () => clearKeyboardTimeout();
@@ -101,16 +101,11 @@ function CardContainerInner({
101
101
 
102
102
  const parentHeaderHeight = React.useContext(HeaderHeightContext);
103
103
 
104
+ const { options } = scene.descriptor;
105
+ const enabled = focused && options.keyboardHandlingEnabled !== false;
106
+
104
107
  const { onPageChangeStart, onPageChangeCancel, onPageChangeConfirm } =
105
- useKeyboardManager(
106
- React.useCallback(() => {
107
- const { options, navigation } = scene.descriptor;
108
-
109
- return (
110
- navigation.isFocused() && options.keyboardHandlingEnabled !== false
111
- );
112
- }, [scene.descriptor])
113
- );
108
+ useKeyboardManager({ enabled, focused });
114
109
 
115
110
  const handleOpen = () => {
116
111
  const { route } = scene.descriptor;
@@ -157,13 +152,7 @@ function CardContainerInner({
157
152
 
158
153
  const { route } = scene.descriptor;
159
154
 
160
- if (!gesture) {
161
- onPageChangeConfirm?.(true);
162
- } else if (active && closing) {
163
- onPageChangeConfirm?.(false);
164
- } else {
165
- onPageChangeCancel?.();
166
- }
155
+ onPageChangeConfirm?.({ gesture, active, closing });
167
156
 
168
157
  onTransitionStart?.({ route }, closing);
169
158
  };