@amazon-devices/react-navigation__stack 7.0.1759135970 → 8.0.9000000000
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/SystemBundles/98ca5eeb45684e3e5615c766e1d3a956fee53d14cd6c2318098c23c210bd76d7.bundle +13464 -0
- package/SystemBundles/98ca5eeb45684e3e5615c766e1d3a956fee53d14cd6c2318098c23c210bd76d7.map +4638 -0
- package/SystemModules/amzn__react-navigation__stack-8.modules.txt +32 -0
- package/SystemModules/amzn__react-navigation__stack-8.private.modules.txt +92 -0
- package/SystemModules/keplerscript-system-bundle-config.json +4 -4
- package/kepler-compatibility.json +2 -2
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js +57 -1
- package/lib/module/TransitionConfigs/CardStyleInterpolators.js.map +1 -1
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js +30 -16
- package/lib/module/TransitionConfigs/HeaderStyleInterpolators.js.map +1 -1
- package/lib/module/TransitionConfigs/TransitionPresets.js +32 -4
- package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -1
- package/lib/module/TransitionConfigs/TransitionSpecs.js +32 -2
- package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -1
- package/lib/module/index.js +13 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createStackNavigator.js +46 -48
- package/lib/module/navigators/createStackNavigator.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/CardAnimationContext.js +3 -1
- package/lib/module/utils/CardAnimationContext.js.map +1 -1
- package/lib/module/utils/GestureHandlerRefContext.js +3 -1
- package/lib/module/utils/GestureHandlerRefContext.js.map +1 -1
- package/lib/module/utils/ModalPresentationContext.js +3 -2
- package/lib/module/utils/ModalPresentationContext.js.map +1 -1
- package/lib/module/utils/conditional.js +3 -1
- package/lib/module/utils/conditional.js.map +1 -1
- package/lib/module/utils/findLastIndex.js +4 -2
- package/lib/module/utils/findLastIndex.js.map +1 -1
- package/lib/module/utils/gestureActivationCriteria.js +60 -0
- package/lib/module/utils/gestureActivationCriteria.js.map +1 -0
- package/lib/module/utils/getDistanceForDirection.js +5 -3
- package/lib/module/utils/getDistanceForDirection.js.map +1 -1
- package/lib/module/utils/getInvertedMultiplier.js +5 -4
- package/lib/module/utils/getInvertedMultiplier.js.map +1 -1
- package/lib/module/utils/getModalRoutesKeys.js +12 -0
- package/lib/module/utils/getModalRoutesKeys.js.map +1 -0
- package/lib/module/utils/getShadowStyle.js +24 -0
- package/lib/module/utils/getShadowStyle.js.map +1 -0
- package/lib/module/utils/{debounce.js → throttle.js} +5 -4
- package/lib/module/utils/throttle.js.map +1 -0
- package/lib/module/utils/useCardAnimation.js +4 -2
- package/lib/module/utils/useCardAnimation.js.map +1 -1
- package/lib/module/utils/useGestureHandlerRef.js +5 -3
- package/lib/module/utils/useGestureHandlerRef.js.map +1 -1
- package/lib/module/utils/useKeyboardManager.js +8 -6
- package/lib/module/utils/useKeyboardManager.js.map +1 -1
- package/lib/module/views/GestureHandler.android.js +3 -1
- package/lib/module/views/GestureHandler.android.js.map +1 -1
- package/lib/module/views/GestureHandler.ios.js +3 -1
- package/lib/module/views/GestureHandler.ios.js.map +1 -1
- package/lib/module/views/GestureHandler.js +6 -1
- package/lib/module/views/GestureHandler.js.map +1 -1
- package/lib/module/views/GestureHandler.kepler.js +4 -0
- package/lib/module/views/GestureHandler.kepler.js.map +1 -0
- package/lib/module/views/GestureHandlerNative.js +13 -9
- package/lib/module/views/GestureHandlerNative.js.map +1 -1
- package/lib/module/views/Header/Header.js +12 -8
- package/lib/module/views/Header/Header.js.map +1 -1
- package/lib/module/views/Header/HeaderContainer.js +103 -93
- package/lib/module/views/Header/HeaderContainer.js.map +1 -1
- package/lib/module/views/Header/HeaderSegment.js +43 -31
- package/lib/module/views/Header/HeaderSegment.js.map +1 -1
- package/lib/module/views/Screens.js +17 -9
- package/lib/module/views/Screens.js.map +1 -1
- package/lib/module/views/Stack/Card.js +313 -338
- package/lib/module/views/Stack/Card.js.map +1 -1
- package/lib/module/views/Stack/CardA11yWrapper.js +43 -0
- package/lib/module/views/Stack/CardA11yWrapper.js.map +1 -0
- package/lib/module/views/Stack/CardContainer.js +116 -90
- package/lib/module/views/Stack/CardContainer.js.map +1 -1
- package/lib/module/views/Stack/CardContent.js +74 -0
- package/lib/module/views/Stack/CardContent.js.map +1 -0
- package/lib/module/views/Stack/CardStack.js +241 -180
- package/lib/module/views/Stack/CardStack.js.map +1 -1
- package/lib/module/views/Stack/StackView.js +80 -64
- package/lib/module/views/Stack/StackView.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts +8 -0
- package/lib/typescript/src/TransitionConfigs/CardStyleInterpolators.d.ts.map +1 -1
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts +3 -3
- package/lib/typescript/src/TransitionConfigs/HeaderStyleInterpolators.d.ts.map +1 -1
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +8 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -1
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +10 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -8
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigators/createStackNavigator.d.ts +15 -7
- package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +84 -24
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/CardAnimationContext.d.ts +1 -2
- package/lib/typescript/src/utils/CardAnimationContext.d.ts.map +1 -1
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts +1 -2
- package/lib/typescript/src/utils/GestureHandlerRefContext.d.ts.map +1 -1
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts +1 -2
- package/lib/typescript/src/utils/ModalPresentationContext.d.ts.map +1 -1
- package/lib/typescript/src/utils/conditional.d.ts +1 -1
- package/lib/typescript/src/utils/conditional.d.ts.map +1 -1
- package/lib/typescript/src/utils/findLastIndex.d.ts +1 -1
- package/lib/typescript/src/utils/findLastIndex.d.ts.map +1 -1
- package/lib/typescript/src/utils/gestureActivationCriteria.d.ts +57 -0
- package/lib/typescript/src/utils/gestureActivationCriteria.d.ts.map +1 -0
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts +1 -1
- package/lib/typescript/src/utils/getDistanceForDirection.d.ts.map +1 -1
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts +1 -1
- package/lib/typescript/src/utils/getInvertedMultiplier.d.ts.map +1 -1
- package/lib/typescript/src/utils/getModalRoutesKeys.d.ts +4 -0
- package/lib/typescript/src/utils/getModalRoutesKeys.d.ts.map +1 -0
- package/lib/typescript/src/utils/getShadowStyle.d.ts +27 -0
- package/lib/typescript/src/utils/getShadowStyle.d.ts.map +1 -0
- package/lib/typescript/src/utils/throttle.d.ts +2 -0
- package/lib/typescript/src/utils/throttle.d.ts.map +1 -0
- package/lib/typescript/src/utils/useCardAnimation.d.ts +1 -1
- package/lib/typescript/src/utils/useCardAnimation.d.ts.map +1 -1
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts +1 -1
- package/lib/typescript/src/utils/useGestureHandlerRef.d.ts.map +1 -1
- package/lib/typescript/src/utils/useKeyboardManager.d.ts +1 -1
- package/lib/typescript/src/utils/useKeyboardManager.d.ts.map +1 -1
- package/lib/typescript/src/views/GestureHandler.d.ts +3 -2
- package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -1
- package/lib/typescript/src/views/GestureHandler.kepler.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.kepler.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts +4 -5
- package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/Header.d.ts +1 -2
- package/lib/typescript/src/views/Header/Header.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts +4 -5
- package/lib/typescript/src/views/Header/HeaderContainer.d.ts.map +1 -1
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts +2 -2
- package/lib/typescript/src/views/Header/HeaderSegment.d.ts.map +1 -1
- package/lib/typescript/src/views/Screens.d.ts +7 -5
- package/lib/typescript/src/views/Screens.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/Card.d.ts +14 -42
- package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts +15 -0
- package/lib/typescript/src/views/Stack/CardA11yWrapper.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardContainer.d.ts +6 -8
- package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardContent.d.ts +13 -0
- package/lib/typescript/src/views/Stack/CardContent.d.ts.map +1 -0
- package/lib/typescript/src/views/Stack/CardStack.d.ts +8 -7
- package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/StackView.d.ts +10 -81
- package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TransitionConfigs/CardStyleInterpolators.tsx +72 -6
- package/src/TransitionConfigs/HeaderStyleInterpolators.tsx +43 -25
- package/src/TransitionConfigs/TransitionPresets.tsx +35 -5
- package/src/TransitionConfigs/TransitionSpecs.tsx +30 -2
- package/src/index.tsx +12 -7
- package/src/navigators/createStackNavigator.tsx +47 -63
- package/src/types.tsx +116 -24
- package/src/utils/CardAnimationContext.tsx +3 -3
- package/src/utils/GestureHandlerRefContext.tsx +2 -2
- package/src/utils/ModalPresentationContext.tsx +1 -3
- package/src/utils/conditional.tsx +1 -1
- package/src/utils/findLastIndex.tsx +2 -5
- package/src/utils/gestureActivationCriteria.tsx +70 -0
- package/src/utils/getDistanceForDirection.tsx +5 -4
- package/src/utils/getInvertedMultiplier.tsx +5 -6
- package/src/utils/getModalRoutesKeys.ts +21 -0
- package/src/utils/getShadowStyle.tsx +37 -0
- package/src/utils/throttle.tsx +16 -0
- package/src/utils/useCardAnimation.tsx +2 -2
- package/src/utils/useGestureHandlerRef.tsx +3 -3
- package/src/utils/useKeyboardManager.tsx +5 -7
- package/src/views/GestureHandler.kepler.tsx +1 -0
- package/src/views/GestureHandler.tsx +2 -2
- package/src/views/GestureHandlerNative.tsx +5 -5
- package/src/views/Header/Header.tsx +8 -7
- package/src/views/Header/HeaderContainer.tsx +23 -18
- package/src/views/Header/HeaderSegment.tsx +41 -43
- package/src/views/Screens.tsx +4 -2
- package/src/views/Stack/Card.tsx +480 -462
- package/src/views/Stack/CardA11yWrapper.tsx +67 -0
- package/src/views/Stack/CardContainer.tsx +127 -108
- package/src/views/Stack/CardContent.tsx +92 -0
- package/src/views/Stack/CardStack.tsx +370 -243
- package/src/views/Stack/StackView.tsx +73 -62
- package/SystemBundles/b598f9dfffcd611d6cd7d6a3c5ab3d66234659a03b40b6579fddb628e61b8313.bundle +0 -28538
- package/SystemBundles/b598f9dfffcd611d6cd7d6a3c5ab3d66234659a03b40b6579fddb628e61b8313.map +0 -1
- package/SystemModules/amzn__react-navigation__stack-7.modules.txt +0 -95
- package/SystemModules/amzn__react-navigation__stack-7.private.modules.txt +0 -185
- package/THIRD_PARTY_NOTICES.txt +0 -24
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js +0 -353
- package/lib/commonjs/TransitionConfigs/CardStyleInterpolators.js.map +0 -1
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js +0 -259
- package/lib/commonjs/TransitionConfigs/HeaderStyleInterpolators.js.map +0 -1
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js +0 -134
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +0 -1
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +0 -100
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +0 -1
- package/lib/commonjs/index.js +0 -69
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/navigators/createStackNavigator.js +0 -82
- package/lib/commonjs/navigators/createStackNavigator.js.map +0 -1
- package/lib/commonjs/types.js +0 -6
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/utils/CardAnimationContext.js +0 -11
- package/lib/commonjs/utils/CardAnimationContext.js.map +0 -1
- package/lib/commonjs/utils/GestureHandlerRefContext.js +0 -11
- package/lib/commonjs/utils/GestureHandlerRefContext.js.map +0 -1
- package/lib/commonjs/utils/ModalPresentationContext.js +0 -12
- package/lib/commonjs/utils/ModalPresentationContext.js.map +0 -1
- package/lib/commonjs/utils/conditional.js +0 -32
- package/lib/commonjs/utils/conditional.js.map +0 -1
- package/lib/commonjs/utils/debounce.js +0 -19
- package/lib/commonjs/utils/debounce.js.map +0 -1
- package/lib/commonjs/utils/findLastIndex.js +0 -15
- package/lib/commonjs/utils/findLastIndex.js.map +0 -1
- package/lib/commonjs/utils/getDistanceForDirection.js +0 -20
- package/lib/commonjs/utils/getDistanceForDirection.js.map +0 -1
- package/lib/commonjs/utils/getInvertedMultiplier.js +0 -20
- package/lib/commonjs/utils/getInvertedMultiplier.js.map +0 -1
- package/lib/commonjs/utils/memoize.js +0 -33
- package/lib/commonjs/utils/memoize.js.map +0 -1
- package/lib/commonjs/utils/useCardAnimation.js +0 -19
- package/lib/commonjs/utils/useCardAnimation.js.map +0 -1
- package/lib/commonjs/utils/useGestureHandlerRef.js +0 -19
- package/lib/commonjs/utils/useGestureHandlerRef.js.map +0 -1
- package/lib/commonjs/utils/useKeyboardManager.js +0 -96
- package/lib/commonjs/utils/useKeyboardManager.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.android.js +0 -17
- package/lib/commonjs/views/GestureHandler.android.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.ios.js +0 -17
- package/lib/commonjs/views/GestureHandler.ios.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.js +0 -24
- package/lib/commonjs/views/GestureHandler.js.map +0 -1
- package/lib/commonjs/views/GestureHandlerNative.js +0 -34
- package/lib/commonjs/views/GestureHandlerNative.js.map +0 -1
- package/lib/commonjs/views/Header/Header.js +0 -61
- package/lib/commonjs/views/Header/Header.js.map +0 -1
- package/lib/commonjs/views/Header/HeaderContainer.js +0 -127
- package/lib/commonjs/views/Header/HeaderContainer.js.map +0 -1
- package/lib/commonjs/views/Header/HeaderSegment.js +0 -139
- package/lib/commonjs/views/Header/HeaderSegment.js.map +0 -1
- package/lib/commonjs/views/ModalStatusBarManager.js +0 -42
- package/lib/commonjs/views/ModalStatusBarManager.js.map +0 -1
- package/lib/commonjs/views/Screens.js +0 -44
- package/lib/commonjs/views/Screens.js.map +0 -1
- package/lib/commonjs/views/Stack/Card.js +0 -469
- package/lib/commonjs/views/Stack/Card.js.map +0 -1
- package/lib/commonjs/views/Stack/CardContainer.js +0 -259
- package/lib/commonjs/views/Stack/CardContainer.js.map +0 -1
- package/lib/commonjs/views/Stack/CardSheet.js +0 -54
- package/lib/commonjs/views/Stack/CardSheet.js.map +0 -1
- package/lib/commonjs/views/Stack/CardStack.js +0 -442
- package/lib/commonjs/views/Stack/CardStack.js.map +0 -1
- package/lib/commonjs/views/Stack/StackView.js +0 -333
- package/lib/commonjs/views/Stack/StackView.js.map +0 -1
- package/lib/module/utils/debounce.js.map +0 -1
- package/lib/module/utils/memoize.js +0 -27
- package/lib/module/utils/memoize.js.map +0 -1
- package/lib/module/views/ModalStatusBarManager.js +0 -34
- package/lib/module/views/ModalStatusBarManager.js.map +0 -1
- package/lib/module/views/Stack/CardSheet.js +0 -46
- package/lib/module/views/Stack/CardSheet.js.map +0 -1
- package/lib/typescript/src/utils/debounce.d.ts +0 -2
- package/lib/typescript/src/utils/debounce.d.ts.map +0 -1
- package/lib/typescript/src/utils/memoize.d.ts +0 -2
- package/lib/typescript/src/utils/memoize.d.ts.map +0 -1
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts +0 -12
- package/lib/typescript/src/views/ModalStatusBarManager.d.ts.map +0 -1
- package/lib/typescript/src/views/Stack/CardSheet.d.ts +0 -15
- package/lib/typescript/src/views/Stack/CardSheet.d.ts.map +0 -1
- package/src/utils/debounce.tsx +0 -17
- package/src/utils/memoize.tsx +0 -33
- package/src/views/ModalStatusBarManager.tsx +0 -50
- package/src/views/Stack/CardSheet.tsx +0 -61
|
@@ -2,11 +2,12 @@ import { getHeaderTitle, HeaderBackContext } from '@amazon-devices/react-navigat
|
|
|
2
2
|
import {
|
|
3
3
|
NavigationContext,
|
|
4
4
|
NavigationRouteContext,
|
|
5
|
-
ParamListBase,
|
|
6
|
-
Route,
|
|
5
|
+
type ParamListBase,
|
|
6
|
+
type Route,
|
|
7
|
+
useLinkBuilder,
|
|
7
8
|
} from '@amazon-devices/react-navigation__native';
|
|
8
9
|
import * as React from 'react';
|
|
9
|
-
import {
|
|
10
|
+
import { type StyleProp, StyleSheet, View, type ViewStyle } from 'react-native';
|
|
10
11
|
|
|
11
12
|
import {
|
|
12
13
|
forNoAnimation,
|
|
@@ -21,7 +22,7 @@ import type {
|
|
|
21
22
|
StackHeaderProps,
|
|
22
23
|
StackNavigationProp,
|
|
23
24
|
} from '../../types';
|
|
24
|
-
import Header from './Header';
|
|
25
|
+
import { Header } from './Header';
|
|
25
26
|
|
|
26
27
|
export type Props = {
|
|
27
28
|
mode: StackHeaderMode;
|
|
@@ -33,10 +34,10 @@ export type Props = {
|
|
|
33
34
|
route: Route<string>;
|
|
34
35
|
height: number;
|
|
35
36
|
}) => void;
|
|
36
|
-
style?:
|
|
37
|
+
style?: StyleProp<ViewStyle>;
|
|
37
38
|
};
|
|
38
39
|
|
|
39
|
-
export
|
|
40
|
+
export function HeaderContainer({
|
|
40
41
|
mode,
|
|
41
42
|
scenes,
|
|
42
43
|
layout,
|
|
@@ -47,10 +48,14 @@ export default function HeaderContainer({
|
|
|
47
48
|
}: Props) {
|
|
48
49
|
const focusedRoute = getFocusedRoute();
|
|
49
50
|
const parentHeaderBack = React.useContext(HeaderBackContext);
|
|
51
|
+
const { buildHref } = useLinkBuilder();
|
|
50
52
|
|
|
51
53
|
return (
|
|
52
|
-
<
|
|
53
|
-
{
|
|
54
|
+
<View pointerEvents="box-none" style={style}>
|
|
55
|
+
{/* We render header only on two top-most headers as
|
|
56
|
+
a workaround for https://github.com/react-navigation/react-navigation/issues/12456.
|
|
57
|
+
If the header is persisted, it might be placed incorrectly when navigating back. */}
|
|
58
|
+
{scenes.slice(-2).map((scene, i, self) => {
|
|
54
59
|
if ((mode === 'screen' && i !== self.length - 1) || !scene) {
|
|
55
60
|
return null;
|
|
56
61
|
}
|
|
@@ -78,7 +83,10 @@ export default function HeaderContainer({
|
|
|
78
83
|
const { options, route } = previousScene.descriptor;
|
|
79
84
|
|
|
80
85
|
headerBack = previousScene
|
|
81
|
-
? {
|
|
86
|
+
? {
|
|
87
|
+
title: getHeaderTitle(options, route.name),
|
|
88
|
+
href: buildHref(route.name, route.params),
|
|
89
|
+
}
|
|
82
90
|
: parentHeaderBack;
|
|
83
91
|
}
|
|
84
92
|
|
|
@@ -128,8 +136,8 @@ export default function HeaderContainer({
|
|
|
128
136
|
nextHeaderlessGestureDirection === 'vertical-inverted'
|
|
129
137
|
? forSlideUp
|
|
130
138
|
: nextHeaderlessGestureDirection === 'horizontal-inverted'
|
|
131
|
-
|
|
132
|
-
|
|
139
|
+
? forSlideRight
|
|
140
|
+
: forSlideLeft
|
|
133
141
|
: headerStyleInterpolator
|
|
134
142
|
: forNoAnimation,
|
|
135
143
|
};
|
|
@@ -154,10 +162,7 @@ export default function HeaderContainer({
|
|
|
154
162
|
: undefined
|
|
155
163
|
}
|
|
156
164
|
pointerEvents={isFocused ? 'box-none' : 'none'}
|
|
157
|
-
|
|
158
|
-
importantForAccessibility={
|
|
159
|
-
isFocused ? 'auto' : 'no-hide-descendants'
|
|
160
|
-
}
|
|
165
|
+
aria-hidden={!isFocused}
|
|
161
166
|
style={
|
|
162
167
|
// Avoid positioning the focused header absolutely
|
|
163
168
|
// Otherwise accessibility tools don't seem to be able to find it
|
|
@@ -172,7 +177,7 @@ export default function HeaderContainer({
|
|
|
172
177
|
</NavigationContext.Provider>
|
|
173
178
|
);
|
|
174
179
|
})}
|
|
175
|
-
</
|
|
180
|
+
</View>
|
|
176
181
|
);
|
|
177
182
|
}
|
|
178
183
|
|
|
@@ -180,7 +185,7 @@ const styles = StyleSheet.create({
|
|
|
180
185
|
header: {
|
|
181
186
|
position: 'absolute',
|
|
182
187
|
top: 0,
|
|
183
|
-
|
|
184
|
-
|
|
188
|
+
start: 0,
|
|
189
|
+
end: 0,
|
|
185
190
|
},
|
|
186
191
|
});
|
|
@@ -2,16 +2,16 @@ import {
|
|
|
2
2
|
getDefaultHeaderHeight,
|
|
3
3
|
Header,
|
|
4
4
|
HeaderBackButton,
|
|
5
|
-
HeaderBackButtonProps,
|
|
5
|
+
type HeaderBackButtonProps,
|
|
6
6
|
HeaderTitle,
|
|
7
7
|
} from '@amazon-devices/react-navigation__elements';
|
|
8
|
+
import { useLocale } from '@amazon-devices/react-navigation__native';
|
|
8
9
|
import * as React from 'react';
|
|
9
10
|
import {
|
|
10
|
-
|
|
11
|
-
LayoutChangeEvent,
|
|
11
|
+
type LayoutChangeEvent,
|
|
12
12
|
Platform,
|
|
13
13
|
StyleSheet,
|
|
14
|
-
ViewStyle,
|
|
14
|
+
type ViewStyle,
|
|
15
15
|
} from 'react-native';
|
|
16
16
|
|
|
17
17
|
import type {
|
|
@@ -20,7 +20,6 @@ import type {
|
|
|
20
20
|
StackHeaderOptions,
|
|
21
21
|
StackHeaderStyleInterpolator,
|
|
22
22
|
} from '../../types';
|
|
23
|
-
import memoize from '../../utils/memoize';
|
|
24
23
|
|
|
25
24
|
type Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {
|
|
26
25
|
headerStatusBarHeight: number;
|
|
@@ -28,11 +27,14 @@ type Props = Omit<StackHeaderOptions, 'headerStatusBarHeight'> & {
|
|
|
28
27
|
title: string;
|
|
29
28
|
modal: boolean;
|
|
30
29
|
onGoBack?: () => void;
|
|
30
|
+
backHref?: string;
|
|
31
31
|
progress: SceneProgress;
|
|
32
32
|
styleInterpolator: StackHeaderStyleInterpolator;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
export
|
|
35
|
+
export function HeaderSegment(props: Props) {
|
|
36
|
+
const { direction } = useLocale();
|
|
37
|
+
|
|
36
38
|
const [leftLabelLayout, setLeftLabelLayout] = React.useState<
|
|
37
39
|
Layout | undefined
|
|
38
40
|
>(undefined);
|
|
@@ -71,36 +73,12 @@ export default function HeaderSegment(props: Props) {
|
|
|
71
73
|
setLeftLabelLayout({ height, width });
|
|
72
74
|
};
|
|
73
75
|
|
|
74
|
-
const getInterpolatedStyle = memoize(
|
|
75
|
-
(
|
|
76
|
-
styleInterpolator: StackHeaderStyleInterpolator,
|
|
77
|
-
layout: Layout,
|
|
78
|
-
current: Animated.AnimatedInterpolation<number>,
|
|
79
|
-
next: Animated.AnimatedInterpolation<number> | undefined,
|
|
80
|
-
titleLayout: Layout | undefined,
|
|
81
|
-
leftLabelLayout: Layout | undefined,
|
|
82
|
-
headerHeight: number
|
|
83
|
-
) =>
|
|
84
|
-
styleInterpolator({
|
|
85
|
-
current: { progress: current },
|
|
86
|
-
next: next && { progress: next },
|
|
87
|
-
layouts: {
|
|
88
|
-
header: {
|
|
89
|
-
height: headerHeight,
|
|
90
|
-
width: layout.width,
|
|
91
|
-
},
|
|
92
|
-
screen: layout,
|
|
93
|
-
title: titleLayout,
|
|
94
|
-
leftLabel: leftLabelLayout,
|
|
95
|
-
},
|
|
96
|
-
})
|
|
97
|
-
);
|
|
98
|
-
|
|
99
76
|
const {
|
|
100
77
|
progress,
|
|
101
78
|
layout,
|
|
102
79
|
modal,
|
|
103
80
|
onGoBack,
|
|
81
|
+
backHref,
|
|
104
82
|
headerTitle: title,
|
|
105
83
|
headerLeft: left = onGoBack
|
|
106
84
|
? (props: HeaderBackButtonProps) => <HeaderBackButton {...props} />
|
|
@@ -108,8 +86,8 @@ export default function HeaderSegment(props: Props) {
|
|
|
108
86
|
headerRight: right,
|
|
109
87
|
headerBackImage,
|
|
110
88
|
headerBackTitle,
|
|
111
|
-
|
|
112
|
-
|
|
89
|
+
headerBackButtonDisplayMode = Platform.OS === 'ios' ? 'default' : 'minimal',
|
|
90
|
+
headerBackTruncatedTitle,
|
|
113
91
|
headerBackAccessibilityLabel,
|
|
114
92
|
headerBackTestID,
|
|
115
93
|
headerBackAllowFontScaling,
|
|
@@ -134,33 +112,53 @@ export default function HeaderSegment(props: Props) {
|
|
|
134
112
|
customHeaderStyle || {}
|
|
135
113
|
) as ViewStyle;
|
|
136
114
|
|
|
115
|
+
const headerHeight = typeof height === 'number' ? height : defaultHeight;
|
|
116
|
+
|
|
137
117
|
const {
|
|
138
118
|
titleStyle,
|
|
139
119
|
leftButtonStyle,
|
|
140
120
|
leftLabelStyle,
|
|
141
121
|
rightButtonStyle,
|
|
142
122
|
backgroundStyle,
|
|
143
|
-
} =
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
123
|
+
} = React.useMemo(
|
|
124
|
+
() =>
|
|
125
|
+
styleInterpolator({
|
|
126
|
+
current: { progress: progress.current },
|
|
127
|
+
next: progress.next && { progress: progress.next },
|
|
128
|
+
direction,
|
|
129
|
+
layouts: {
|
|
130
|
+
header: {
|
|
131
|
+
height: headerHeight,
|
|
132
|
+
width: layout.width,
|
|
133
|
+
},
|
|
134
|
+
screen: layout,
|
|
135
|
+
title: titleLayout,
|
|
136
|
+
leftLabel: leftLabelLayout,
|
|
137
|
+
},
|
|
138
|
+
}),
|
|
139
|
+
[
|
|
140
|
+
styleInterpolator,
|
|
141
|
+
progress,
|
|
142
|
+
direction,
|
|
143
|
+
headerHeight,
|
|
144
|
+
layout,
|
|
145
|
+
titleLayout,
|
|
146
|
+
leftLabelLayout,
|
|
147
|
+
]
|
|
151
148
|
);
|
|
152
149
|
|
|
153
150
|
const headerLeft: StackHeaderOptions['headerLeft'] = left
|
|
154
151
|
? (props) =>
|
|
155
152
|
left({
|
|
156
153
|
...props,
|
|
154
|
+
href: backHref,
|
|
157
155
|
backImage: headerBackImage,
|
|
158
156
|
accessibilityLabel: headerBackAccessibilityLabel,
|
|
159
157
|
testID: headerBackTestID,
|
|
160
158
|
allowFontScaling: headerBackAllowFontScaling,
|
|
161
159
|
onPress: onGoBack,
|
|
162
160
|
label: headerBackTitle,
|
|
163
|
-
truncatedLabel:
|
|
161
|
+
truncatedLabel: headerBackTruncatedTitle,
|
|
164
162
|
labelStyle: [leftLabelStyle, headerBackTitleStyle],
|
|
165
163
|
onLabelLayout: handleLeftLabelLayout,
|
|
166
164
|
screenLayout: layout,
|
|
@@ -188,11 +186,11 @@ export default function HeaderSegment(props: Props) {
|
|
|
188
186
|
layout={layout}
|
|
189
187
|
headerTitle={headerTitle}
|
|
190
188
|
headerLeft={headerLeft}
|
|
191
|
-
headerLeftLabelVisible={headerBackTitleVisible}
|
|
192
189
|
headerRight={headerRight}
|
|
193
190
|
headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}
|
|
194
191
|
headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}
|
|
195
192
|
headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}
|
|
193
|
+
headerBackButtonDisplayMode={headerBackButtonDisplayMode}
|
|
196
194
|
headerBackgroundContainerStyle={[
|
|
197
195
|
backgroundStyle,
|
|
198
196
|
headerBackgroundContainerStyle,
|
package/src/views/Screens.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { View, ViewProps } from 'react-native';
|
|
2
|
+
import { Animated, View, type ViewProps } from 'react-native';
|
|
3
3
|
|
|
4
4
|
let Screens: typeof import('@amazon-devices/react-native-screens') | undefined;
|
|
5
5
|
|
|
@@ -29,9 +29,11 @@ export const MaybeScreen = ({
|
|
|
29
29
|
...rest
|
|
30
30
|
}: ViewProps & {
|
|
31
31
|
enabled: boolean;
|
|
32
|
-
active: 0 | 1
|
|
32
|
+
active: 0 | 1 | Animated.AnimatedInterpolation<0 | 1>;
|
|
33
33
|
children: React.ReactNode;
|
|
34
34
|
freezeOnBlur?: boolean;
|
|
35
|
+
shouldFreeze: boolean;
|
|
36
|
+
homeIndicatorHidden?: boolean;
|
|
35
37
|
}) => {
|
|
36
38
|
if (Screens != null) {
|
|
37
39
|
return (
|