@amazon-devices/react-navigation__stack 2.0.1758683737
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.
- package/LICENSE +7 -0
- package/README.md +5 -0
- package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.bundle +29321 -0
- package/SystemBundles/ed2637c0b74cd42ce066fca701acc5cb0850978c5296fae5bd715d5e4c67b128.map +1 -0
- package/SystemModules/amzn__react-navigation__stack-2.modules.txt +95 -0
- package/SystemModules/amzn__react-navigation__stack-2.private.modules.txt +258 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/THIRD_PARTY_NOTICES.txt +24 -0
- package/kepler-compatibility.json +8 -0
- package/kepler-transformed-package-info.json +3 -0
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +353 -0
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +259 -0
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js +134 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +100 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/commonjs/index.js +69 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/navigators/createStackNavigator.js +82 -0
- package/lib/commonjs/navigators/createStackNavigator.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/CardAnimationContext.js +11 -0
- package/lib/commonjs/utils/CardAnimationContext.js.map +1 -0
- package/lib/commonjs/utils/GestureHandlerRefContext.js +11 -0
- package/lib/commonjs/utils/GestureHandlerRefContext.js.map +1 -0
- package/lib/commonjs/utils/ModalPresentationContext.js +12 -0
- package/lib/commonjs/utils/ModalPresentationContext.js.map +1 -0
- package/lib/commonjs/utils/conditional.js +32 -0
- package/lib/commonjs/utils/conditional.js.map +1 -0
- package/lib/commonjs/utils/debounce.js +19 -0
- package/lib/commonjs/utils/debounce.js.map +1 -0
- package/lib/commonjs/utils/findLastIndex.js +15 -0
- package/lib/commonjs/utils/findLastIndex.js.map +1 -0
- package/lib/commonjs/utils/getDistanceForDirection.js +20 -0
- package/lib/commonjs/utils/getDistanceForDirection.js.map +1 -0
- package/lib/commonjs/utils/getInvertedMultiplier.js +20 -0
- package/lib/commonjs/utils/getInvertedMultiplier.js.map +1 -0
- package/lib/commonjs/utils/memoize.js +33 -0
- package/lib/commonjs/utils/memoize.js.map +1 -0
- package/lib/commonjs/utils/useCardAnimation.js +19 -0
- package/lib/commonjs/utils/useCardAnimation.js.map +1 -0
- package/lib/commonjs/utils/useGestureHandlerRef.js +19 -0
- package/lib/commonjs/utils/useGestureHandlerRef.js.map +1 -0
- package/lib/commonjs/utils/useKeyboardManager.js +96 -0
- package/lib/commonjs/utils/useKeyboardManager.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.android.js +17 -0
- package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.ios.js +17 -0
- package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.js +24 -0
- package/lib/commonjs/views/GestureHandler.js.map +1 -0
- package/lib/commonjs/views/GestureHandlerNative.js +34 -0
- package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
- package/lib/commonjs/views/Header/Header.js +61 -0
- package/lib/commonjs/views/Header/Header.js.map +1 -0
- package/lib/commonjs/views/Header/HeaderContainer.js +127 -0
- package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -0
- package/lib/commonjs/views/Header/HeaderSegment.js +139 -0
- package/lib/commonjs/views/Header/HeaderSegment.js.map +1 -0
- package/lib/commonjs/views/ModalStatusBarManager.js +42 -0
- package/lib/commonjs/views/ModalStatusBarManager.js.map +1 -0
- package/lib/commonjs/views/Screens.js +44 -0
- package/lib/commonjs/views/Screens.js.map +1 -0
- package/lib/commonjs/views/Stack/Card.js +469 -0
- package/lib/commonjs/views/Stack/Card.js.map +1 -0
- package/lib/commonjs/views/Stack/CardContainer.js +259 -0
- package/lib/commonjs/views/Stack/CardContainer.js.map +1 -0
- package/lib/commonjs/views/Stack/CardSheet.js +54 -0
- package/lib/commonjs/views/Stack/CardSheet.js.map +1 -0
- package/lib/commonjs/views/Stack/CardStack.js +442 -0
- package/lib/commonjs/views/Stack/CardStack.js.map +1 -0
- package/lib/commonjs/views/Stack/StackView.js +333 -0
- package/lib/commonjs/views/Stack/StackView.js.map +1 -0
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js +338 -0
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -0
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +248 -0
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js +128 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js +94 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/module/index.js +33 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/navigators/createStackNavigator.js +73 -0
- package/lib/module/navigators/createStackNavigator.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/CardAnimationContext.js +3 -0
- package/lib/module/utils/CardAnimationContext.js.map +1 -0
- package/lib/module/utils/GestureHandlerRefContext.js +3 -0
- package/lib/module/utils/GestureHandlerRefContext.js.map +1 -0
- package/lib/module/utils/ModalPresentationContext.js +4 -0
- package/lib/module/utils/ModalPresentationContext.js.map +1 -0
- package/lib/module/utils/conditional.js +26 -0
- package/lib/module/utils/conditional.js.map +1 -0
- package/lib/module/utils/debounce.js +13 -0
- package/lib/module/utils/debounce.js.map +1 -0
- package/lib/module/utils/findLastIndex.js +9 -0
- package/lib/module/utils/findLastIndex.js.map +1 -0
- package/lib/module/utils/getDistanceForDirection.js +13 -0
- package/lib/module/utils/getDistanceForDirection.js.map +1 -0
- package/lib/module/utils/getInvertedMultiplier.js +14 -0
- package/lib/module/utils/getInvertedMultiplier.js.map +1 -0
- package/lib/module/utils/memoize.js +27 -0
- package/lib/module/utils/memoize.js.map +1 -0
- package/lib/module/utils/useCardAnimation.js +10 -0
- package/lib/module/utils/useCardAnimation.js.map +1 -0
- package/lib/module/utils/useGestureHandlerRef.js +10 -0
- package/lib/module/utils/useGestureHandlerRef.js.map +1 -0
- package/lib/module/utils/useKeyboardManager.js +88 -0
- package/lib/module/utils/useKeyboardManager.js.map +1 -0
- package/lib/module/views/GestureHandler.android.js +2 -0
- package/lib/module/views/GestureHandler.android.js.map +1 -0
- package/lib/module/views/GestureHandler.ios.js +2 -0
- package/lib/module/views/GestureHandler.ios.js.map +1 -0
- package/lib/module/views/GestureHandler.js +16 -0
- package/lib/module/views/GestureHandler.js.map +1 -0
- package/lib/module/views/GestureHandlerNative.js +14 -0
- package/lib/module/views/GestureHandlerNative.js.map +1 -0
- package/lib/module/views/Header/Header.js +52 -0
- package/lib/module/views/Header/Header.js.map +1 -0
- package/lib/module/views/Header/HeaderContainer.js +118 -0
- package/lib/module/views/Header/HeaderContainer.js.map +1 -0
- package/lib/module/views/Header/HeaderSegment.js +130 -0
- package/lib/module/views/Header/HeaderSegment.js.map +1 -0
- package/lib/module/views/ModalStatusBarManager.js +34 -0
- package/lib/module/views/ModalStatusBarManager.js.map +1 -0
- package/lib/module/views/Screens.js +34 -0
- package/lib/module/views/Screens.js.map +1 -0
- package/lib/module/views/Stack/Card.js +458 -0
- package/lib/module/views/Stack/Card.js.map +1 -0
- package/lib/module/views/Stack/CardContainer.js +250 -0
- package/lib/module/views/Stack/CardContainer.js.map +1 -0
- package/lib/module/views/Stack/CardSheet.js +46 -0
- package/lib/module/views/Stack/CardSheet.js.map +1 -0
- package/lib/module/views/Stack/CardStack.js +432 -0
- package/lib/module/views/Stack/CardStack.js.map +1 -0
- package/lib/module/views/Stack/StackView.js +323 -0
- package/lib/module/views/Stack/StackView.js.map +1 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +35 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +23 -0
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +42 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +36 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +29 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/navigators/createStackNavigator.d.ts +8 -0
- package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +481 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/CardAnimationContext.d.ts +5 -0
- package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +4 -0
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts +4 -0
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/conditional.d.ts +10 -0
- package/lib/typescript/src/utils/conditional.d.ts.map +1 -0
- package/lib/typescript/src/utils/debounce.d.ts +2 -0
- package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/src/utils/findLastIndex.d.ts +2 -0
- package/lib/typescript/src/utils/findLastIndex.d.ts.map +1 -0
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts +3 -0
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -0
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +3 -0
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -0
- package/lib/typescript/src/utils/memoize.d.ts +2 -0
- package/lib/typescript/src/utils/memoize.d.ts.map +1 -0
- package/lib/typescript/src/utils/useCardAnimation.d.ts +2 -0
- package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -0
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +3 -0
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +1 -0
- package/lib/typescript/src/utils/useKeyboardManager.d.ts +6 -0
- package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.d.ts +14 -0
- package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/Header.d.ts +5 -0
- package/lib/typescript/src/views/Header/Header.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts +20 -0
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -0
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts +14 -0
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -0
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts +12 -0
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +1 -0
- package/lib/typescript/src/views/Screens.d.ts +13 -0
- package/lib/typescript/src/views/Screens.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/Card.d.ts +76 -0
- package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardContainer.d.ts +63 -0
- package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardSheet.d.ts +15 -0
- package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardStack.d.ts +67 -0
- package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/StackView.d.ts +122 -0
- package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -0
- package/package.json +1 -0
- package/src/TransitionConfigs/CardStyleInterpolators.tsx +394 -0
- package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +268 -0
- package/src/TransitionConfigs/TransitionPresets.tsx +152 -0
- package/src/TransitionConfigs/TransitionSpecs.tsx +96 -0
- package/src/index.tsx +51 -0
- package/src/navigators/createStackNavigator.tsx +136 -0
- package/src/types.tsx +547 -0
- package/src/utils/CardAnimationContext.tsx +7 -0
- package/src/utils/GestureHandlerRefContext.tsx +5 -0
- package/src/utils/ModalPresentationContext.tsx +5 -0
- package/src/utils/conditional.tsx +33 -0
- package/src/utils/debounce.tsx +17 -0
- package/src/utils/findLastIndex.tsx +12 -0
- package/src/utils/getDistanceForDirection.tsx +18 -0
- package/src/utils/getInvertedMultiplier.tsx +18 -0
- package/src/utils/memoize.tsx +33 -0
- package/src/utils/useCardAnimation.tsx +15 -0
- package/src/utils/useGestureHandlerRef.tsx +15 -0
- package/src/utils/useKeyboardManager.tsx +105 -0
- package/src/views/GestureHandler.android.tsx +1 -0
- package/src/views/GestureHandler.ios.tsx +1 -0
- package/src/views/GestureHandler.tsx +23 -0
- package/src/views/GestureHandlerNative.tsx +23 -0
- package/src/views/Header/Header.tsx +72 -0
- package/src/views/Header/HeaderContainer.tsx +186 -0
- package/src/views/Header/HeaderSegment.tsx +205 -0
- package/src/views/ModalStatusBarManager.tsx +50 -0
- package/src/views/Screens.tsx +43 -0
- package/src/views/Stack/Card.tsx +628 -0
- package/src/views/Stack/CardContainer.tsx +320 -0
- package/src/views/Stack/CardSheet.tsx +61 -0
- package/src/views/Stack/CardStack.tsx +717 -0
- package/src/views/Stack/StackView.tsx +474 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Keyboard, TextInput } from 'react-native';
|
|
3
|
+
export default function useKeyboardManager(isEnabled) {
|
|
4
|
+
// Numeric id of the previously focused text input
|
|
5
|
+
// When a gesture didn't change the tab, we can restore the focused input with this
|
|
6
|
+
const previouslyFocusedTextInputRef = React.useRef(undefined);
|
|
7
|
+
const startTimestampRef = React.useRef(0);
|
|
8
|
+
const keyboardTimeoutRef = React.useRef();
|
|
9
|
+
const clearKeyboardTimeout = React.useCallback(() => {
|
|
10
|
+
if (keyboardTimeoutRef.current !== undefined) {
|
|
11
|
+
clearTimeout(keyboardTimeoutRef.current);
|
|
12
|
+
keyboardTimeoutRef.current = undefined;
|
|
13
|
+
}
|
|
14
|
+
}, []);
|
|
15
|
+
const onPageChangeStart = React.useCallback(() => {
|
|
16
|
+
if (!isEnabled()) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
clearKeyboardTimeout();
|
|
20
|
+
const input = TextInput.State.currentlyFocusedInput();
|
|
21
|
+
|
|
22
|
+
// When a page change begins, blur the currently focused input
|
|
23
|
+
input === null || input === void 0 || input.blur();
|
|
24
|
+
|
|
25
|
+
// Store the id of this input so we can refocus it if change was cancelled
|
|
26
|
+
previouslyFocusedTextInputRef.current = input;
|
|
27
|
+
|
|
28
|
+
// Store timestamp for touch start
|
|
29
|
+
startTimestampRef.current = Date.now();
|
|
30
|
+
}, [clearKeyboardTimeout, isEnabled]);
|
|
31
|
+
const onPageChangeConfirm = React.useCallback(force => {
|
|
32
|
+
if (!isEnabled()) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
clearKeyboardTimeout();
|
|
36
|
+
if (force) {
|
|
37
|
+
// Always dismiss input, even if we don't have a ref to it
|
|
38
|
+
// We might not have the ref if onPageChangeStart was never called
|
|
39
|
+
// This can happen if page change was not from a gesture
|
|
40
|
+
Keyboard.dismiss();
|
|
41
|
+
} else {
|
|
42
|
+
const input = previouslyFocusedTextInputRef.current;
|
|
43
|
+
|
|
44
|
+
// Dismiss the keyboard only if an input was a focused before
|
|
45
|
+
// This makes sure we don't dismiss input on going back and focusing an input
|
|
46
|
+
input === null || input === void 0 || input.blur();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Cleanup the ID on successful page change
|
|
50
|
+
previouslyFocusedTextInputRef.current = undefined;
|
|
51
|
+
}, [clearKeyboardTimeout, isEnabled]);
|
|
52
|
+
const onPageChangeCancel = React.useCallback(() => {
|
|
53
|
+
if (!isEnabled()) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
clearKeyboardTimeout();
|
|
57
|
+
|
|
58
|
+
// The page didn't change, we should restore the focus of text input
|
|
59
|
+
const input = previouslyFocusedTextInputRef.current;
|
|
60
|
+
if (input) {
|
|
61
|
+
// If the interaction was super short we should make sure keyboard won't hide again.
|
|
62
|
+
|
|
63
|
+
// Too fast input refocus will result only in keyboard flashing on screen and hiding right away.
|
|
64
|
+
// During first ~100ms keyboard will be dismissed no matter what,
|
|
65
|
+
// so we have to make sure it won't interrupt input refocus logic.
|
|
66
|
+
// That's why when the interaction is shorter than 100ms we add delay so it won't hide once again.
|
|
67
|
+
// Subtracting timestamps makes us sure the delay is executed only when needed.
|
|
68
|
+
if (Date.now() - startTimestampRef.current < 100) {
|
|
69
|
+
keyboardTimeoutRef.current = setTimeout(() => {
|
|
70
|
+
input === null || input === void 0 || input.focus();
|
|
71
|
+
previouslyFocusedTextInputRef.current = undefined;
|
|
72
|
+
}, 100);
|
|
73
|
+
} else {
|
|
74
|
+
input === null || input === void 0 || input.focus();
|
|
75
|
+
previouslyFocusedTextInputRef.current = undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, [clearKeyboardTimeout, isEnabled]);
|
|
79
|
+
React.useEffect(() => {
|
|
80
|
+
return () => clearKeyboardTimeout();
|
|
81
|
+
}, [clearKeyboardTimeout]);
|
|
82
|
+
return {
|
|
83
|
+
onPageChangeStart,
|
|
84
|
+
onPageChangeConfirm,
|
|
85
|
+
onPageChangeCancel
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=useKeyboardManager.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["views/GestureHandler.android.tsx"],"mappings":"AAAA,cAAc,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["views/GestureHandler.ios.tsx"],"mappings":"AAAA,cAAc,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
const Dummy = ({
|
|
4
|
+
children
|
|
5
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
6
|
+
export const PanGestureHandler = Dummy;
|
|
7
|
+
export const GestureHandlerRootView = View;
|
|
8
|
+
export const GestureState = {
|
|
9
|
+
UNDETERMINED: 0,
|
|
10
|
+
FAILED: 1,
|
|
11
|
+
BEGAN: 2,
|
|
12
|
+
CANCELLED: 3,
|
|
13
|
+
ACTIVE: 4,
|
|
14
|
+
END: 5
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=GestureHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Dummy","children","createElement","Fragment","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;AAGnC,MAAMC,KAAU,GAAGA,CAAC;EAAEC;AAAwC,CAAC,kBAC7DH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAGF,QAAW,CACf;AAED,OAAO,MAAMG,iBAAiB,GAC5BJ,KAAyD;AAE3D,OAAO,MAAMK,sBAAsB,GAAGN,IAAI;AAE1C,OAAO,MAAMO,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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { PanGestureHandler as PanGestureHandlerNative } from 'react-native-gesture-handler';
|
|
4
|
+
import GestureHandlerRefContext from '../utils/GestureHandlerRefContext';
|
|
5
|
+
export function PanGestureHandler(props) {
|
|
6
|
+
const gestureRef = React.useRef(null);
|
|
7
|
+
return /*#__PURE__*/React.createElement(GestureHandlerRefContext.Provider, {
|
|
8
|
+
value: gestureRef
|
|
9
|
+
}, /*#__PURE__*/React.createElement(PanGestureHandlerNative, _extends({}, props, {
|
|
10
|
+
ref: gestureRef
|
|
11
|
+
})));
|
|
12
|
+
}
|
|
13
|
+
export { GestureHandlerRootView, State as GestureState } from 'react-native-gesture-handler';
|
|
14
|
+
//# sourceMappingURL=GestureHandlerNative.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PanGestureHandler","PanGestureHandlerNative","GestureHandlerRefContext","props","gestureRef","useRef","createElement","Provider","value","_extends","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,OAAOC,wBAAwB,MAAM,mCAAmC;AAExE,OAAO,SAASF,iBAAiBA,CAACG,KAAkC,EAAE;EACpE,MAAMC,UAAU,GAAGL,KAAK,CAACM,MAAM,CAA0B,IAAI,CAAC;EAE9D,oBACEN,KAAA,CAAAO,aAAA,CAACJ,wBAAwB,CAACK,QAAQ;IAACC,KAAK,EAAEJ;EAAW,gBACnDL,KAAA,CAAAO,aAAA,CAACL,uBAAuB,EAAAQ,QAAA,KAAKN,KAAK;IAAEO,GAAG,EAAEN;EAAW,EAAE,CACrB,CAAC;AAExC;AAGA,SACEO,sBAAsB,EACtBC,KAAK,IAAIC,YAAY,QAChB,8BAA8B","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import { getHeaderTitle, HeaderShownContext } from '@amazon-devices/react-navigation__elements';
|
|
3
|
+
import { StackActions } from '@amazon-devices/react-navigation__native';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { useSafeAreaInsets } from '@amazon-devices/react-native-safe-area-context';
|
|
6
|
+
import debounce from '../../utils/debounce';
|
|
7
|
+
import ModalPresentationContext from '../../utils/ModalPresentationContext';
|
|
8
|
+
import HeaderSegment from './HeaderSegment';
|
|
9
|
+
export default /*#__PURE__*/React.memo(function Header({
|
|
10
|
+
back,
|
|
11
|
+
layout,
|
|
12
|
+
progress,
|
|
13
|
+
options,
|
|
14
|
+
route,
|
|
15
|
+
navigation,
|
|
16
|
+
styleInterpolator
|
|
17
|
+
}) {
|
|
18
|
+
const insets = useSafeAreaInsets();
|
|
19
|
+
let previousTitle;
|
|
20
|
+
|
|
21
|
+
// The label for the left back button shows the title of the previous screen
|
|
22
|
+
// If a custom label is specified, we use it, otherwise use previous screen's title
|
|
23
|
+
if (options.headerBackTitle !== undefined) {
|
|
24
|
+
previousTitle = options.headerBackTitle;
|
|
25
|
+
} else if (back) {
|
|
26
|
+
previousTitle = back.title;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
|
+
const goBack = React.useCallback(debounce(() => {
|
|
31
|
+
if (navigation.isFocused() && navigation.canGoBack()) {
|
|
32
|
+
navigation.dispatch({
|
|
33
|
+
...StackActions.pop(),
|
|
34
|
+
source: route.key
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}, 50), [navigation, route.key]);
|
|
38
|
+
const isModal = React.useContext(ModalPresentationContext);
|
|
39
|
+
const isParentHeaderShown = React.useContext(HeaderShownContext);
|
|
40
|
+
const statusBarHeight = options.headerStatusBarHeight !== undefined ? options.headerStatusBarHeight : isModal || isParentHeaderShown ? 0 : insets.top;
|
|
41
|
+
return /*#__PURE__*/React.createElement(HeaderSegment, _extends({}, options, {
|
|
42
|
+
title: getHeaderTitle(options, route.name),
|
|
43
|
+
progress: progress,
|
|
44
|
+
layout: layout,
|
|
45
|
+
modal: isModal,
|
|
46
|
+
headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : previousTitle,
|
|
47
|
+
headerStatusBarHeight: statusBarHeight,
|
|
48
|
+
onGoBack: back ? goBack : undefined,
|
|
49
|
+
styleInterpolator: styleInterpolator
|
|
50
|
+
}));
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getHeaderTitle","HeaderShownContext","StackActions","React","useSafeAreaInsets","debounce","ModalPresentationContext","HeaderSegment","memo","Header","back","layout","progress","options","route","navigation","styleInterpolator","insets","previousTitle","headerBackTitle","undefined","title","goBack","useCallback","isFocused","canGoBack","dispatch","pop","source","key","isModal","useContext","isParentHeaderShown","statusBarHeight","headerStatusBarHeight","top","createElement","_extends","name","modal","onGoBack"],"sourceRoot":"../../../../src","sources":["views/Header/Header.tsx"],"mappings":";AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,kCAAkC;AACrF,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,iBAAiB,QAAQ,sCAAsC;AAGxE,OAAOC,QAAQ,MAAM,sBAAsB;AAC3C,OAAOC,wBAAwB,MAAM,sCAAsC;AAC3E,OAAOC,aAAa,MAAM,iBAAiB;AAE3C,4BAAeJ,KAAK,CAACK,IAAI,CAAC,SAASC,MAAMA,CAAC;EACxCC,IAAI;EACJC,MAAM;EACNC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,UAAU;EACVC;AACgB,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAGb,iBAAiB,CAAC,CAAC;EAElC,IAAIc,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,GAAGnB,KAAK,CAACoB,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,GAAGxB,YAAY,CAACyB,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,GAAG3B,KAAK,CAAC4B,UAAU,CAACzB,wBAAwB,CAAC;EAC1D,MAAM0B,mBAAmB,GAAG7B,KAAK,CAAC4B,UAAU,CAAC9B,kBAAkB,CAAC;EAEhE,MAAMgC,eAAe,GACnBpB,OAAO,CAACqB,qBAAqB,KAAKd,SAAS,GACvCP,OAAO,CAACqB,qBAAqB,GAC7BJ,OAAO,IAAIE,mBAAmB,GAC9B,CAAC,GACDf,MAAM,CAACkB,GAAG;EAEhB,oBACEhC,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAA8B,QAAA,KACRxB,OAAO;IACXQ,KAAK,EAAErB,cAAc,CAACa,OAAO,EAAEC,KAAK,CAACwB,IAAI,CAAE;IAC3C1B,QAAQ,EAAEA,QAAS;IACnBD,MAAM,EAAEA,MAAO;IACf4B,KAAK,EAAET,OAAQ;IACfX,eAAe,EACbN,OAAO,CAACM,eAAe,KAAKC,SAAS,GACjCP,OAAO,CAACM,eAAe,GACvBD,aACL;IACDgB,qBAAqB,EAAED,eAAgB;IACvCO,QAAQ,EAAE9B,IAAI,GAAGY,MAAM,GAAGF,SAAU;IACpCJ,iBAAiB,EAAEA;EAAkB,EACtC,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { getHeaderTitle, HeaderBackContext } from '@amazon-devices/react-navigation__elements';
|
|
2
|
+
import { NavigationContext, NavigationRouteContext } from '@amazon-devices/react-navigation__native';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Animated, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { forNoAnimation, forSlideLeft, forSlideRight, forSlideUp } from '../../TransitionConfigs/HeaderStyleInterpolators';
|
|
6
|
+
import Header from './Header';
|
|
7
|
+
export default function HeaderContainer({
|
|
8
|
+
mode,
|
|
9
|
+
scenes,
|
|
10
|
+
layout,
|
|
11
|
+
getPreviousScene,
|
|
12
|
+
getFocusedRoute,
|
|
13
|
+
onContentHeightChange,
|
|
14
|
+
style
|
|
15
|
+
}) {
|
|
16
|
+
const focusedRoute = getFocusedRoute();
|
|
17
|
+
const parentHeaderBack = React.useContext(HeaderBackContext);
|
|
18
|
+
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
19
|
+
pointerEvents: "box-none",
|
|
20
|
+
style: style
|
|
21
|
+
}, scenes.slice(-3).map((scene, i, self) => {
|
|
22
|
+
var _self, _self2;
|
|
23
|
+
if (mode === 'screen' && i !== self.length - 1 || !scene) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const {
|
|
27
|
+
header,
|
|
28
|
+
headerMode,
|
|
29
|
+
headerShown = true,
|
|
30
|
+
headerTransparent,
|
|
31
|
+
headerStyleInterpolator
|
|
32
|
+
} = scene.descriptor.options;
|
|
33
|
+
if (headerMode !== mode || !headerShown) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const isFocused = focusedRoute.key === scene.descriptor.route.key;
|
|
37
|
+
const previousScene = getPreviousScene({
|
|
38
|
+
route: scene.descriptor.route
|
|
39
|
+
});
|
|
40
|
+
let headerBack = parentHeaderBack;
|
|
41
|
+
if (previousScene) {
|
|
42
|
+
const {
|
|
43
|
+
options,
|
|
44
|
+
route
|
|
45
|
+
} = previousScene.descriptor;
|
|
46
|
+
headerBack = previousScene ? {
|
|
47
|
+
title: getHeaderTitle(options, route.name)
|
|
48
|
+
} : parentHeaderBack;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// If the screen is next to a headerless screen, we need to make the header appear static
|
|
52
|
+
// This makes the header look like it's moving with the screen
|
|
53
|
+
const previousDescriptor = (_self = self[i - 1]) === null || _self === void 0 ? void 0 : _self.descriptor;
|
|
54
|
+
const nextDescriptor = (_self2 = self[i + 1]) === null || _self2 === void 0 ? void 0 : _self2.descriptor;
|
|
55
|
+
const {
|
|
56
|
+
headerShown: previousHeaderShown = true,
|
|
57
|
+
headerMode: previousHeaderMode
|
|
58
|
+
} = (previousDescriptor === null || previousDescriptor === void 0 ? void 0 : previousDescriptor.options) || {};
|
|
59
|
+
|
|
60
|
+
// If any of the next screens don't have a header or header is part of the screen
|
|
61
|
+
// Then we need to move this header offscreen so that it doesn't cover it
|
|
62
|
+
const nextHeaderlessScene = self.slice(i + 1).find(scene => {
|
|
63
|
+
const {
|
|
64
|
+
headerShown: currentHeaderShown = true,
|
|
65
|
+
headerMode: currentHeaderMode
|
|
66
|
+
} = (scene === null || scene === void 0 ? void 0 : scene.descriptor.options) || {};
|
|
67
|
+
return currentHeaderShown === false || currentHeaderMode === 'screen';
|
|
68
|
+
});
|
|
69
|
+
const {
|
|
70
|
+
gestureDirection: nextHeaderlessGestureDirection
|
|
71
|
+
} = (nextHeaderlessScene === null || nextHeaderlessScene === void 0 ? void 0 : nextHeaderlessScene.descriptor.options) || {};
|
|
72
|
+
const isHeaderStatic = (previousHeaderShown === false || previousHeaderMode === 'screen') &&
|
|
73
|
+
// We still need to animate when coming back from next scene
|
|
74
|
+
// A hacky way to check this is if the next scene exists
|
|
75
|
+
!nextDescriptor || nextHeaderlessScene;
|
|
76
|
+
const props = {
|
|
77
|
+
layout,
|
|
78
|
+
back: headerBack,
|
|
79
|
+
progress: scene.progress,
|
|
80
|
+
options: scene.descriptor.options,
|
|
81
|
+
route: scene.descriptor.route,
|
|
82
|
+
navigation: scene.descriptor.navigation,
|
|
83
|
+
styleInterpolator: mode === 'float' ? isHeaderStatic ? nextHeaderlessGestureDirection === 'vertical' || nextHeaderlessGestureDirection === 'vertical-inverted' ? forSlideUp : nextHeaderlessGestureDirection === 'horizontal-inverted' ? forSlideRight : forSlideLeft : headerStyleInterpolator : forNoAnimation
|
|
84
|
+
};
|
|
85
|
+
return /*#__PURE__*/React.createElement(NavigationContext.Provider, {
|
|
86
|
+
key: scene.descriptor.route.key,
|
|
87
|
+
value: scene.descriptor.navigation
|
|
88
|
+
}, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {
|
|
89
|
+
value: scene.descriptor.route
|
|
90
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
91
|
+
onLayout: onContentHeightChange ? e => {
|
|
92
|
+
const {
|
|
93
|
+
height
|
|
94
|
+
} = e.nativeEvent.layout;
|
|
95
|
+
onContentHeightChange({
|
|
96
|
+
route: scene.descriptor.route,
|
|
97
|
+
height
|
|
98
|
+
});
|
|
99
|
+
} : undefined,
|
|
100
|
+
pointerEvents: isFocused ? 'box-none' : 'none',
|
|
101
|
+
accessibilityElementsHidden: !isFocused,
|
|
102
|
+
importantForAccessibility: isFocused ? 'auto' : 'no-hide-descendants',
|
|
103
|
+
style:
|
|
104
|
+
// Avoid positioning the focused header absolutely
|
|
105
|
+
// Otherwise accessibility tools don't seem to be able to find it
|
|
106
|
+
mode === 'float' && !isFocused || headerTransparent ? styles.header : null
|
|
107
|
+
}, header !== undefined ? header(props) : /*#__PURE__*/React.createElement(Header, props))));
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
const styles = StyleSheet.create({
|
|
111
|
+
header: {
|
|
112
|
+
position: 'absolute',
|
|
113
|
+
top: 0,
|
|
114
|
+
left: 0,
|
|
115
|
+
right: 0
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=HeaderContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getHeaderTitle","HeaderBackContext","NavigationContext","NavigationRouteContext","React","Animated","StyleSheet","View","forNoAnimation","forSlideLeft","forSlideRight","forSlideUp","Header","HeaderContainer","mode","scenes","layout","getPreviousScene","getFocusedRoute","onContentHeightChange","style","focusedRoute","parentHeaderBack","useContext","createElement","pointerEvents","slice","map","scene","i","self","_self","_self2","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","Provider","value","onLayout","e","height","nativeEvent","undefined","accessibilityElementsHidden","importantForAccessibility","styles","create","position","top","left","right"],"sourceRoot":"../../../../src","sources":["views/Header/HeaderContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import { getDefaultHeaderHeight, Header, HeaderBackButton, HeaderTitle } from '@amazon-devices/react-navigation__elements';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
5
|
+
import memoize from '../../utils/memoize';
|
|
6
|
+
export default function HeaderSegment(props) {
|
|
7
|
+
const [leftLabelLayout, setLeftLabelLayout] = React.useState(undefined);
|
|
8
|
+
const [titleLayout, setTitleLayout] = React.useState(undefined);
|
|
9
|
+
const handleTitleLayout = e => {
|
|
10
|
+
const {
|
|
11
|
+
height,
|
|
12
|
+
width
|
|
13
|
+
} = e.nativeEvent.layout;
|
|
14
|
+
setTitleLayout(titleLayout => {
|
|
15
|
+
if (titleLayout && height === titleLayout.height && width === titleLayout.width) {
|
|
16
|
+
return titleLayout;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
height,
|
|
20
|
+
width
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const handleLeftLabelLayout = e => {
|
|
25
|
+
const {
|
|
26
|
+
height,
|
|
27
|
+
width
|
|
28
|
+
} = e.nativeEvent.layout;
|
|
29
|
+
if (leftLabelLayout && height === leftLabelLayout.height && width === leftLabelLayout.width) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
setLeftLabelLayout({
|
|
33
|
+
height,
|
|
34
|
+
width
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const getInterpolatedStyle = memoize((styleInterpolator, layout, current, next, titleLayout, leftLabelLayout, headerHeight) => styleInterpolator({
|
|
38
|
+
current: {
|
|
39
|
+
progress: current
|
|
40
|
+
},
|
|
41
|
+
next: next && {
|
|
42
|
+
progress: next
|
|
43
|
+
},
|
|
44
|
+
layouts: {
|
|
45
|
+
header: {
|
|
46
|
+
height: headerHeight,
|
|
47
|
+
width: layout.width
|
|
48
|
+
},
|
|
49
|
+
screen: layout,
|
|
50
|
+
title: titleLayout,
|
|
51
|
+
leftLabel: leftLabelLayout
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
const {
|
|
55
|
+
progress,
|
|
56
|
+
layout,
|
|
57
|
+
modal,
|
|
58
|
+
onGoBack,
|
|
59
|
+
headerTitle: title,
|
|
60
|
+
headerLeft: left = onGoBack ? props => /*#__PURE__*/React.createElement(HeaderBackButton, props) : undefined,
|
|
61
|
+
headerRight: right,
|
|
62
|
+
headerBackImage,
|
|
63
|
+
headerBackTitle,
|
|
64
|
+
headerBackTitleVisible = Platform.OS === 'ios',
|
|
65
|
+
headerTruncatedBackTitle,
|
|
66
|
+
headerBackAccessibilityLabel,
|
|
67
|
+
headerBackTestID,
|
|
68
|
+
headerBackAllowFontScaling,
|
|
69
|
+
headerBackTitleStyle,
|
|
70
|
+
headerTitleContainerStyle,
|
|
71
|
+
headerLeftContainerStyle,
|
|
72
|
+
headerRightContainerStyle,
|
|
73
|
+
headerBackgroundContainerStyle,
|
|
74
|
+
headerStyle: customHeaderStyle,
|
|
75
|
+
headerStatusBarHeight,
|
|
76
|
+
styleInterpolator,
|
|
77
|
+
...rest
|
|
78
|
+
} = props;
|
|
79
|
+
const defaultHeight = getDefaultHeaderHeight(layout, modal, headerStatusBarHeight);
|
|
80
|
+
const {
|
|
81
|
+
height = defaultHeight
|
|
82
|
+
} = StyleSheet.flatten(customHeaderStyle || {});
|
|
83
|
+
const {
|
|
84
|
+
titleStyle,
|
|
85
|
+
leftButtonStyle,
|
|
86
|
+
leftLabelStyle,
|
|
87
|
+
rightButtonStyle,
|
|
88
|
+
backgroundStyle
|
|
89
|
+
} = getInterpolatedStyle(styleInterpolator, layout, progress.current, progress.next, titleLayout, headerBackTitle ? leftLabelLayout : undefined, typeof height === 'number' ? height : defaultHeight);
|
|
90
|
+
const headerLeft = left ? props => left({
|
|
91
|
+
...props,
|
|
92
|
+
backImage: headerBackImage,
|
|
93
|
+
accessibilityLabel: headerBackAccessibilityLabel,
|
|
94
|
+
testID: headerBackTestID,
|
|
95
|
+
allowFontScaling: headerBackAllowFontScaling,
|
|
96
|
+
onPress: onGoBack,
|
|
97
|
+
label: headerBackTitle,
|
|
98
|
+
truncatedLabel: headerTruncatedBackTitle,
|
|
99
|
+
labelStyle: [leftLabelStyle, headerBackTitleStyle],
|
|
100
|
+
onLabelLayout: handleLeftLabelLayout,
|
|
101
|
+
screenLayout: layout,
|
|
102
|
+
titleLayout,
|
|
103
|
+
canGoBack: Boolean(onGoBack)
|
|
104
|
+
}) : undefined;
|
|
105
|
+
const headerRight = right ? props => right({
|
|
106
|
+
...props,
|
|
107
|
+
canGoBack: Boolean(onGoBack)
|
|
108
|
+
}) : undefined;
|
|
109
|
+
const headerTitle = typeof title !== 'function' ? props => /*#__PURE__*/React.createElement(HeaderTitle, _extends({}, props, {
|
|
110
|
+
onLayout: handleTitleLayout
|
|
111
|
+
})) : props => title({
|
|
112
|
+
...props,
|
|
113
|
+
onLayout: handleTitleLayout
|
|
114
|
+
});
|
|
115
|
+
return /*#__PURE__*/React.createElement(Header, _extends({
|
|
116
|
+
modal: modal,
|
|
117
|
+
layout: layout,
|
|
118
|
+
headerTitle: headerTitle,
|
|
119
|
+
headerLeft: headerLeft,
|
|
120
|
+
headerLeftLabelVisible: headerBackTitleVisible,
|
|
121
|
+
headerRight: headerRight,
|
|
122
|
+
headerTitleContainerStyle: [titleStyle, headerTitleContainerStyle],
|
|
123
|
+
headerLeftContainerStyle: [leftButtonStyle, headerLeftContainerStyle],
|
|
124
|
+
headerRightContainerStyle: [rightButtonStyle, headerRightContainerStyle],
|
|
125
|
+
headerBackgroundContainerStyle: [backgroundStyle, headerBackgroundContainerStyle],
|
|
126
|
+
headerStyle: customHeaderStyle,
|
|
127
|
+
headerStatusBarHeight: headerStatusBarHeight
|
|
128
|
+
}, rest));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=HeaderSegment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getDefaultHeaderHeight","Header","HeaderBackButton","HeaderTitle","React","Platform","StyleSheet","memoize","HeaderSegment","props","leftLabelLayout","setLeftLabelLayout","useState","undefined","titleLayout","setTitleLayout","handleTitleLayout","e","height","width","nativeEvent","layout","handleLeftLabelLayout","getInterpolatedStyle","styleInterpolator","current","next","headerHeight","progress","layouts","header","screen","title","leftLabel","modal","onGoBack","headerTitle","headerLeft","left","createElement","headerRight","right","headerBackImage","headerBackTitle","headerBackTitleVisible","OS","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","headerTitleContainerStyle","headerLeftContainerStyle","headerRightContainerStyle","headerBackgroundContainerStyle","headerStyle","customHeaderStyle","headerStatusBarHeight","rest","defaultHeight","flatten","titleStyle","leftButtonStyle","leftLabelStyle","rightButtonStyle","backgroundStyle","backImage","accessibilityLabel","testID","allowFontScaling","onPress","label","truncatedLabel","labelStyle","onLabelLayout","screenLayout","canGoBack","Boolean","_extends","onLayout","headerLeftLabelVisible"],"sourceRoot":"../../../../src","sources":["views/Header/HeaderSegment.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useTheme } from '@amazon-devices/react-navigation__native';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { StatusBar, StyleSheet } from 'react-native';
|
|
4
|
+
export default function ModalStatusBarManager({
|
|
5
|
+
dark,
|
|
6
|
+
layout,
|
|
7
|
+
insets,
|
|
8
|
+
style
|
|
9
|
+
}) {
|
|
10
|
+
var _flattenedStyle$trans;
|
|
11
|
+
const {
|
|
12
|
+
dark: darkTheme
|
|
13
|
+
} = useTheme();
|
|
14
|
+
const [overlapping, setOverlapping] = React.useState(true);
|
|
15
|
+
const scale = 1 - 20 / layout.width;
|
|
16
|
+
const offset = (insets.top - 34) * scale;
|
|
17
|
+
const flattenedStyle = StyleSheet.flatten(style);
|
|
18
|
+
const translateY = flattenedStyle === null || flattenedStyle === void 0 || (_flattenedStyle$trans = flattenedStyle.transform) === null || _flattenedStyle$trans === void 0 || (_flattenedStyle$trans = _flattenedStyle$trans.find(s => s.translateY !== undefined)) === null || _flattenedStyle$trans === void 0 ? void 0 : _flattenedStyle$trans.translateY;
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
const listener = ({
|
|
21
|
+
value
|
|
22
|
+
}) => {
|
|
23
|
+
setOverlapping(value < offset);
|
|
24
|
+
};
|
|
25
|
+
const sub = translateY === null || translateY === void 0 ? void 0 : translateY.addListener(listener);
|
|
26
|
+
return () => translateY === null || translateY === void 0 ? void 0 : translateY.removeListener(sub);
|
|
27
|
+
}, [offset, translateY]);
|
|
28
|
+
const darkContent = dark ?? !darkTheme;
|
|
29
|
+
return /*#__PURE__*/React.createElement(StatusBar, {
|
|
30
|
+
animated: true,
|
|
31
|
+
barStyle: overlapping && darkContent ? 'dark-content' : 'light-content'
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ModalStatusBarManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useTheme","React","StatusBar","StyleSheet","ModalStatusBarManager","dark","layout","insets","style","_flattenedStyle$trans","darkTheme","overlapping","setOverlapping","useState","scale","width","offset","top","flattenedStyle","flatten","translateY","transform","find","s","undefined","useEffect","listener","value","sub","addListener","removeListener","darkContent","createElement","animated","barStyle"],"sourceRoot":"../../../src","sources":["views/ModalStatusBarManager.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gCAAgC;AACzD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,EAAEC,UAAU,QAAQ,cAAc;AAYpD,eAAe,SAASC,qBAAqBA,CAAC;EAC5CC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC;AACK,CAAC,EAAE;EAAA,IAAAC,qBAAA;EACR,MAAM;IAAEJ,IAAI,EAAEK;EAAU,CAAC,GAAGV,QAAQ,CAAC,CAAC;EACtC,MAAM,CAACW,WAAW,EAAEC,cAAc,CAAC,GAAGX,KAAK,CAACY,QAAQ,CAAC,IAAI,CAAC;EAE1D,MAAMC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAGR,MAAM,CAACS,KAAK;EACnC,MAAMC,MAAM,GAAG,CAACT,MAAM,CAACU,GAAG,GAAG,EAAE,IAAIH,KAAK;EAExC,MAAMI,cAAc,GAAGf,UAAU,CAACgB,OAAO,CAACX,KAAK,CAAC;EAChD,MAAMY,UAAU,GAAGF,cAAc,aAAdA,cAAc,gBAAAT,qBAAA,GAAdS,cAAc,CAAEG,SAAS,cAAAZ,qBAAA,gBAAAA,qBAAA,GAAzBA,qBAAA,CAA2Ba,IAAI,CAC/CC,CAAM,IAAKA,CAAC,CAACH,UAAU,KAAKI,SAC/B,CAAC,cAAAf,qBAAA,uBAFkBA,qBAAA,CAEhBW,UAAU;EAEbnB,KAAK,CAACwB,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGA,CAAC;MAAEC;IAAyB,CAAC,KAAK;MACjDf,cAAc,CAACe,KAAK,GAAGX,MAAM,CAAC;IAChC,CAAC;IAED,MAAMY,GAAG,GAAGR,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAES,WAAW,CAACH,QAAQ,CAAC;IAE7C,OAAO,MAAMN,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEU,cAAc,CAACF,GAAG,CAAC;EAC9C,CAAC,EAAE,CAACZ,MAAM,EAAEI,UAAU,CAAC,CAAC;EAExB,MAAMW,WAAW,GAAG1B,IAAI,IAAI,CAACK,SAAS;EAEtC,oBACET,KAAA,CAAA+B,aAAA,CAAC9B,SAAS;IACR+B,QAAQ;IACRC,QAAQ,EAAEvB,WAAW,IAAIoB,WAAW,GAAG,cAAc,GAAG;EAAgB,CACzE,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
let Screens;
|
|
5
|
+
try {
|
|
6
|
+
Screens = require('@amazon-devices/react-native-screens');
|
|
7
|
+
} catch (e) {
|
|
8
|
+
// Ignore
|
|
9
|
+
}
|
|
10
|
+
export const MaybeScreenContainer = ({
|
|
11
|
+
enabled,
|
|
12
|
+
...rest
|
|
13
|
+
}) => {
|
|
14
|
+
if (Screens != null) {
|
|
15
|
+
return /*#__PURE__*/React.createElement(Screens.ScreenContainer, _extends({
|
|
16
|
+
enabled: enabled
|
|
17
|
+
}, rest));
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/React.createElement(View, rest);
|
|
20
|
+
};
|
|
21
|
+
export const MaybeScreen = ({
|
|
22
|
+
enabled,
|
|
23
|
+
active,
|
|
24
|
+
...rest
|
|
25
|
+
}) => {
|
|
26
|
+
if (Screens != null) {
|
|
27
|
+
return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
|
|
28
|
+
enabled: enabled,
|
|
29
|
+
activityState: active
|
|
30
|
+
}, rest));
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/React.createElement(View, rest);
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=Screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","createElement","ScreenContainer","_extends","MaybeScreen","active","Screen","activityState"],"sourceRoot":"../../../src","sources":["views/Screens.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAE9C,IAAIC,OAAgE;AAEpE,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,4BAA4B,CAAC;AACjD,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;AAGF,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,OAAO;EACP,GAAGC;AAIL,CAAC,KAAK;EACJ,IAAIL,OAAO,IAAI,IAAI,EAAE;IACnB,oBAAOF,KAAA,CAAAQ,aAAA,CAACN,OAAO,CAACO,eAAe,EAAAC,QAAA;MAACJ,OAAO,EAAEA;IAAQ,GAAKC,IAAI,CAAG,CAAC;EAChE;EAEA,oBAAOP,KAAA,CAAAQ,aAAA,CAACP,IAAI,EAAKM,IAAO,CAAC;AAC3B,CAAC;AAED,OAAO,MAAMI,WAAW,GAAGA,CAAC;EAC1BL,OAAO;EACPM,MAAM;EACN,GAAGL;AAML,CAAC,KAAK;EACJ,IAAIL,OAAO,IAAI,IAAI,EAAE;IACnB,oBACEF,KAAA,CAAAQ,aAAA,CAACN,OAAO,CAACW,MAAM,EAAAH,QAAA;MAACJ,OAAO,EAAEA,OAAQ;MAACQ,aAAa,EAAEF;IAAO,GAAKL,IAAI,CAAG,CAAC;EAEzE;EAEA,oBAAOP,KAAA,CAAAQ,aAAA,CAACP,IAAI,EAAKM,IAAO,CAAC;AAC3B,CAAC","ignoreList":[]}
|