@react-navigation/stack 7.0.0-alpha.7 → 7.0.0-alpha.8
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/lib/commonjs/navigators/createStackNavigator.js +4 -0
- package/lib/commonjs/navigators/createStackNavigator.js.map +1 -1
- package/lib/commonjs/views/Header/HeaderContainer.js +1 -1
- package/lib/commonjs/views/Header/HeaderContainer.js.map +1 -1
- package/lib/commonjs/views/Stack/Card.js +12 -9
- package/lib/commonjs/views/Stack/Card.js.map +1 -1
- package/lib/commonjs/views/Stack/CardContainer.js +4 -5
- package/lib/commonjs/views/Stack/CardContainer.js.map +1 -1
- package/lib/commonjs/views/Stack/CardStack.js +29 -20
- package/lib/commonjs/views/Stack/CardStack.js.map +1 -1
- package/lib/commonjs/views/Stack/StackView.js +20 -26
- package/lib/commonjs/views/Stack/StackView.js.map +1 -1
- package/lib/module/navigators/createStackNavigator.js +4 -0
- package/lib/module/navigators/createStackNavigator.js.map +1 -1
- package/lib/module/views/Header/HeaderContainer.js +2 -2
- package/lib/module/views/Header/HeaderContainer.js.map +1 -1
- package/lib/module/views/Stack/Card.js +12 -9
- package/lib/module/views/Stack/Card.js.map +1 -1
- package/lib/module/views/Stack/CardContainer.js +5 -6
- package/lib/module/views/Stack/CardContainer.js.map +1 -1
- package/lib/module/views/Stack/CardStack.js +29 -20
- package/lib/module/views/Stack/CardStack.js.map +1 -1
- package/lib/module/views/Stack/StackView.js +20 -26
- package/lib/module/views/Stack/StackView.js.map +1 -1
- package/lib/typescript/src/navigators/createStackNavigator.d.ts +1 -1
- package/lib/typescript/src/navigators/createStackNavigator.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/Card.d.ts +1 -0
- package/lib/typescript/src/views/Stack/Card.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardContainer.d.ts +2 -4
- package/lib/typescript/src/views/Stack/CardContainer.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/CardStack.d.ts +1 -3
- package/lib/typescript/src/views/Stack/CardStack.d.ts.map +1 -1
- package/lib/typescript/src/views/Stack/StackView.d.ts +5 -77
- package/lib/typescript/src/views/Stack/StackView.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/navigators/createStackNavigator.tsx +4 -1
- package/src/views/Header/HeaderContainer.tsx +2 -2
- package/src/views/Stack/Card.tsx +16 -6
- package/src/views/Stack/CardContainer.tsx +6 -5
- package/src/views/Stack/CardStack.tsx +176 -149
- package/src/views/Stack/StackView.tsx +13 -12
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
type LocaleDirection,
|
|
8
8
|
type ParamListBase,
|
|
9
9
|
type Route,
|
|
10
|
+
type RouteProp,
|
|
10
11
|
StackActions,
|
|
11
12
|
type StackNavigationState,
|
|
12
13
|
} from '@react-navigation/native';
|
|
@@ -15,6 +16,7 @@ import { StyleSheet, View } from 'react-native';
|
|
|
15
16
|
import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
|
|
16
17
|
|
|
17
18
|
import type {
|
|
19
|
+
StackDescriptor,
|
|
18
20
|
StackDescriptorMap,
|
|
19
21
|
StackNavigationConfig,
|
|
20
22
|
StackNavigationHelpers,
|
|
@@ -32,6 +34,10 @@ type Props = StackNavigationConfig & {
|
|
|
32
34
|
state: StackNavigationState<ParamListBase>;
|
|
33
35
|
navigation: StackNavigationHelpers;
|
|
34
36
|
descriptors: StackDescriptorMap;
|
|
37
|
+
describe: (
|
|
38
|
+
route: RouteProp<ParamListBase>,
|
|
39
|
+
placeholder: boolean
|
|
40
|
+
) => StackDescriptor;
|
|
35
41
|
};
|
|
36
42
|
|
|
37
43
|
type State = {
|
|
@@ -299,17 +305,6 @@ export class StackView extends React.Component<Props, State> {
|
|
|
299
305
|
return routes[index - 1];
|
|
300
306
|
};
|
|
301
307
|
|
|
302
|
-
private renderScene = ({ route }: { route: Route<string> }) => {
|
|
303
|
-
const descriptor =
|
|
304
|
-
this.state.descriptors[route.key] || this.props.descriptors[route.key];
|
|
305
|
-
|
|
306
|
-
if (!descriptor) {
|
|
307
|
-
return null;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
return descriptor.render();
|
|
311
|
-
};
|
|
312
|
-
|
|
313
308
|
private renderHeader = (props: HeaderContainerProps) => {
|
|
314
309
|
return <HeaderContainer {...props} />;
|
|
315
310
|
};
|
|
@@ -434,6 +429,12 @@ export class StackView extends React.Component<Props, State> {
|
|
|
434
429
|
const { routes, descriptors, openingRouteKeys, closingRouteKeys } =
|
|
435
430
|
this.state;
|
|
436
431
|
|
|
432
|
+
const preloadedDescriptors =
|
|
433
|
+
state.preloadedRoutes.reduce<StackDescriptorMap>((acc, route) => {
|
|
434
|
+
acc[route.key] = acc[route.key] || this.props.describe(route, true);
|
|
435
|
+
return acc;
|
|
436
|
+
}, {});
|
|
437
|
+
|
|
437
438
|
return (
|
|
438
439
|
<GestureHandlerWrapper style={styles.container}>
|
|
439
440
|
<SafeAreaProviderCompat>
|
|
@@ -456,12 +457,12 @@ export class StackView extends React.Component<Props, State> {
|
|
|
456
457
|
onTransitionStart={this.handleTransitionStart}
|
|
457
458
|
onTransitionEnd={this.handleTransitionEnd}
|
|
458
459
|
renderHeader={this.renderHeader}
|
|
459
|
-
renderScene={this.renderScene}
|
|
460
460
|
state={state}
|
|
461
461
|
descriptors={descriptors}
|
|
462
462
|
onGestureStart={this.handleGestureStart}
|
|
463
463
|
onGestureEnd={this.handleGestureEnd}
|
|
464
464
|
onGestureCancel={this.handleGestureCancel}
|
|
465
|
+
preloadedDescriptors={preloadedDescriptors}
|
|
465
466
|
{...rest}
|
|
466
467
|
/>
|
|
467
468
|
)}
|