mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-03-13 17:34:51 +08:00
Compare commits
1 Commits
@react-nav
...
@react-nav
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41736641c1 |
@@ -50,7 +50,7 @@
|
|||||||
"babel-plugin-module-resolver": "^4.0.0",
|
"babel-plugin-module-resolver": "^4.0.0",
|
||||||
"babel-preset-expo": "8.3.0",
|
"babel-preset-expo": "8.3.0",
|
||||||
"cheerio": "^1.0.0-rc.3",
|
"cheerio": "^1.0.0-rc.3",
|
||||||
"expo-cli": "^4.3.0",
|
"expo-cli": "^4.2.1",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
"jest-dev-server": "^4.4.0",
|
"jest-dev-server": "^4.4.0",
|
||||||
"mock-require-assets": "^0.0.1",
|
"mock-require-assets": "^0.0.1",
|
||||||
|
|||||||
@@ -1,159 +0,0 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { View, Platform, StyleSheet, ScrollView } from 'react-native';
|
|
||||||
import { Button } from 'react-native-paper';
|
|
||||||
import type { ParamListBase } from '@react-navigation/native';
|
|
||||||
import {
|
|
||||||
createStackNavigator,
|
|
||||||
StackScreenProps,
|
|
||||||
TransitionPresets,
|
|
||||||
HeaderStyleInterpolators,
|
|
||||||
} from '@react-navigation/stack';
|
|
||||||
import Article from '../Shared/Article';
|
|
||||||
import Albums from '../Shared/Albums';
|
|
||||||
import NewsFeed from '../Shared/NewsFeed';
|
|
||||||
|
|
||||||
export type SimpleStackParams = {
|
|
||||||
Article: { author: string } | undefined;
|
|
||||||
NewsFeed: { date: number };
|
|
||||||
Albums: undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
const scrollEnabled = Platform.select({ web: true, default: false });
|
|
||||||
|
|
||||||
const ArticleScreen = ({
|
|
||||||
navigation,
|
|
||||||
route,
|
|
||||||
}: StackScreenProps<SimpleStackParams, 'Article'>) => {
|
|
||||||
return (
|
|
||||||
<ScrollView>
|
|
||||||
<View style={styles.buttons}>
|
|
||||||
<Button
|
|
||||||
mode="contained"
|
|
||||||
onPress={() => navigation.push('NewsFeed', { date: Date.now() })}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Push feed
|
|
||||||
</Button>
|
|
||||||
<Button
|
|
||||||
mode="outlined"
|
|
||||||
onPress={() => navigation.pop()}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Pop screen
|
|
||||||
</Button>
|
|
||||||
</View>
|
|
||||||
<Article
|
|
||||||
author={{ name: route.params?.author ?? 'Unknown' }}
|
|
||||||
scrollEnabled={scrollEnabled}
|
|
||||||
/>
|
|
||||||
</ScrollView>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const NewsFeedScreen = ({
|
|
||||||
route,
|
|
||||||
navigation,
|
|
||||||
}: StackScreenProps<SimpleStackParams, 'NewsFeed'>) => {
|
|
||||||
return (
|
|
||||||
<ScrollView>
|
|
||||||
<View style={styles.buttons}>
|
|
||||||
<Button
|
|
||||||
mode="contained"
|
|
||||||
onPress={() => navigation.push('Albums')}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Navigate to album
|
|
||||||
</Button>
|
|
||||||
<Button
|
|
||||||
mode="outlined"
|
|
||||||
onPress={() => navigation.pop()}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Pop screen
|
|
||||||
</Button>
|
|
||||||
</View>
|
|
||||||
<NewsFeed scrollEnabled={scrollEnabled} date={route.params.date} />
|
|
||||||
</ScrollView>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const AlbumsScreen = ({
|
|
||||||
navigation,
|
|
||||||
}: StackScreenProps<SimpleStackParams, 'Albums'>) => {
|
|
||||||
return (
|
|
||||||
<ScrollView>
|
|
||||||
<View style={styles.buttons}>
|
|
||||||
<Button
|
|
||||||
mode="contained"
|
|
||||||
onPress={() => navigation.push('Article', { author: 'Babel fish' })}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Push article
|
|
||||||
</Button>
|
|
||||||
<Button
|
|
||||||
mode="outlined"
|
|
||||||
onPress={() => navigation.pop()}
|
|
||||||
style={styles.button}
|
|
||||||
>
|
|
||||||
Pop screen
|
|
||||||
</Button>
|
|
||||||
</View>
|
|
||||||
<Albums scrollEnabled={scrollEnabled} />
|
|
||||||
</ScrollView>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const SimpleStack = createStackNavigator<SimpleStackParams>();
|
|
||||||
|
|
||||||
export default function SimpleStackScreen({
|
|
||||||
navigation,
|
|
||||||
}: StackScreenProps<ParamListBase>) {
|
|
||||||
React.useLayoutEffect(() => {
|
|
||||||
navigation.setOptions({
|
|
||||||
headerShown: false,
|
|
||||||
});
|
|
||||||
}, [navigation]);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<SimpleStack.Navigator
|
|
||||||
screenOptions={{
|
|
||||||
...TransitionPresets.SlideFromRightIOS,
|
|
||||||
headerMode: 'float',
|
|
||||||
headerStyleInterpolator: HeaderStyleInterpolators.forUIKit,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<SimpleStack.Screen
|
|
||||||
name="Article"
|
|
||||||
component={ArticleScreen}
|
|
||||||
options={({ route }) => ({
|
|
||||||
title: `Article by ${route.params?.author ?? 'Unknown'}`,
|
|
||||||
})}
|
|
||||||
initialParams={{ author: 'Gandalf' }}
|
|
||||||
/>
|
|
||||||
<SimpleStack.Screen
|
|
||||||
name="NewsFeed"
|
|
||||||
component={NewsFeedScreen}
|
|
||||||
options={{ title: 'Feed' }}
|
|
||||||
/>
|
|
||||||
<SimpleStack.Screen
|
|
||||||
name="Albums"
|
|
||||||
component={AlbumsScreen}
|
|
||||||
options={{
|
|
||||||
...TransitionPresets.ModalSlideFromBottomIOS,
|
|
||||||
headerMode: 'screen',
|
|
||||||
title: 'Albums',
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</SimpleStack.Navigator>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
|
||||||
buttons: {
|
|
||||||
flexDirection: 'row',
|
|
||||||
padding: 8,
|
|
||||||
},
|
|
||||||
button: {
|
|
||||||
margin: 8,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@@ -42,7 +42,6 @@ import LinkingPrefixes from './LinkingPrefixes';
|
|||||||
import SettingsItem from './Shared/SettingsItem';
|
import SettingsItem from './Shared/SettingsItem';
|
||||||
import SimpleStack from './Screens/SimpleStack';
|
import SimpleStack from './Screens/SimpleStack';
|
||||||
import ModalStack from './Screens/ModalStack';
|
import ModalStack from './Screens/ModalStack';
|
||||||
import MixedHeaderMode from './Screens/MixedHeaderMode';
|
|
||||||
import StackTransparent from './Screens/StackTransparent';
|
import StackTransparent from './Screens/StackTransparent';
|
||||||
import StackHeaderCustomization from './Screens/StackHeaderCustomization';
|
import StackHeaderCustomization from './Screens/StackHeaderCustomization';
|
||||||
import BottomTabs from './Screens/BottomTabs';
|
import BottomTabs from './Screens/BottomTabs';
|
||||||
@@ -71,10 +70,6 @@ const SCREENS = {
|
|||||||
title: 'Modal Stack',
|
title: 'Modal Stack',
|
||||||
component: ModalStack,
|
component: ModalStack,
|
||||||
},
|
},
|
||||||
MixedHeaderMode: {
|
|
||||||
title: 'Float + Screen Header Stack',
|
|
||||||
component: MixedHeaderMode,
|
|
||||||
},
|
|
||||||
StackTransparent: {
|
StackTransparent: {
|
||||||
title: 'Transparent Stack',
|
title: 'Transparent Stack',
|
||||||
component: StackTransparent,
|
component: StackTransparent,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"version": "independent",
|
"version": "independent",
|
||||||
"command": {
|
"command": {
|
||||||
"publish": {
|
"publish": {
|
||||||
"allowBranch": "main",
|
"allowBranch": "6.x",
|
||||||
"conventionalCommits": true,
|
"conventionalCommits": true,
|
||||||
"createRelease": "github",
|
"createRelease": "github",
|
||||||
"message": "chore: publish",
|
"message": "chore: publish",
|
||||||
|
|||||||
@@ -3,25 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.2](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0-next.1...@react-navigation/bottom-tabs@6.0.0-next.2) (2021-03-12)
|
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/bottom-tabs
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0...@react-navigation/bottom-tabs@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@5.11.1...@react-navigation/bottom-tabs@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@5.11.1...@react-navigation/bottom-tabs@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
Bottom tab navigator for React Navigation following iOS design guidelines.
|
Bottom tab navigator for React Navigation following iOS design guidelines.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/bottom-tab-navigator/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/bottom-tab-navigator/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/bottom-tabs",
|
"name": "@react-navigation/bottom-tabs",
|
||||||
"description": "Bottom tab navigator following iOS design guidelines",
|
"description": "Bottom tab navigator following iOS design guidelines",
|
||||||
"version": "6.0.0-next.2",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native-component",
|
"react-native-component",
|
||||||
"react-component",
|
"react-component",
|
||||||
@@ -37,12 +37,12 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/elements": "^1.0.0-next.2",
|
"@react-navigation/elements": "^1.0.0",
|
||||||
"color": "^3.1.3",
|
"color": "^3.1.3",
|
||||||
"warn-once": "^0.0.1"
|
"warn-once": "^0.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/color": "^3.0.1",
|
"@types/color": "^3.0.1",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-safe-area-context": ">= 3.0.0",
|
"react-native-safe-area-context": ">= 3.0.0",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
shouldUseActivityState,
|
shouldUseActivityState,
|
||||||
} from 'react-native-screens';
|
} from 'react-native-screens';
|
||||||
import { ResourceSavingView } from '@react-navigation/elements';
|
import { ResourceSavingScene } from '@react-navigation/elements';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
visible: boolean;
|
visible: boolean;
|
||||||
@@ -34,8 +34,8 @@ export default function ScreenFallback({ visible, children, ...rest }: Props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ResourceSavingView visible={visible} {...rest}>
|
<ResourceSavingScene visible={visible} {...rest}>
|
||||||
{children}
|
{children}
|
||||||
</ResourceSavingView>
|
</ResourceSavingScene>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@6.0.0...@react-navigation/core@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/core
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@5.14.3...@react-navigation/core@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@5.14.3...@react-navigation/core@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/core",
|
"name": "@react-navigation/core",
|
||||||
"description": "Core utilities for building navigators",
|
"description": "Core utilities for building navigators",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react",
|
"react",
|
||||||
"react-native",
|
"react-native",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/routers": "^6.0.0-next.1",
|
"@react-navigation/routers": "^6.0.0-next.0",
|
||||||
"escape-string-regexp": "^4.0.0",
|
"escape-string-regexp": "^4.0.0",
|
||||||
"nanoid": "^3.1.20",
|
"nanoid": "^3.1.20",
|
||||||
"query-string": "^6.14.1",
|
"query-string": "^6.14.1",
|
||||||
|
|||||||
@@ -3,14 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/devtools@6.0.0...@react-navigation/devtools@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/devtools
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/devtools@5.1.17...@react-navigation/devtools@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/devtools@5.1.17...@react-navigation/devtools@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/devtools
|
**Note:** Version bump only for package @react-navigation/devtools
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Developer tools for React Navigation.
|
Developer tools for React Navigation.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/devtools).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/devtools).
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/devtools",
|
"name": "@react-navigation/devtools",
|
||||||
"description": "Developer tools for React Navigation",
|
"description": "Developer tools for React Navigation",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react",
|
"react",
|
||||||
"react-native",
|
"react-native",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/core": "^6.0.0-next.1",
|
"@react-navigation/core": "^6.0.0-next.0",
|
||||||
"deep-equal": "^2.0.5"
|
"deep-equal": "^2.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -3,28 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.2](https://github.com/react-navigation/react-navigation/compare/@react-navigation/drawer@6.0.0-next.1...@react-navigation/drawer@6.0.0-next.2) (2021-03-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* export drawer button ([2c8401d](https://github.com/react-navigation/react-navigation/commit/2c8401d5cb347d37c96e5b30f8ad05c17fd22ea4))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/drawer@6.0.0...@react-navigation/drawer@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/drawer@5.11.2...@react-navigation/drawer@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/drawer@5.11.2...@react-navigation/drawer@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# `@react-navigation/drawer`
|
# `@react-navigation/drawer`
|
||||||
|
|
||||||
Drawer navigator for React Navigation following Material Design guidelines.
|
Drawer navigator for React Navigation following Material Design guidelines.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/drawer-navigator/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/drawer-navigator/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/drawer",
|
"name": "@react-navigation/drawer",
|
||||||
"description": "Drawer navigator component with animated transitions and gesturess",
|
"description": "Drawer navigator component with animated transitions and gesturess",
|
||||||
"version": "6.0.0-next.2",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native-component",
|
"react-native-component",
|
||||||
"react-component",
|
"react-component",
|
||||||
@@ -42,12 +42,12 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/elements": "^1.0.0-next.2",
|
"@react-navigation/elements": "^1.0.0",
|
||||||
"color": "^3.1.3",
|
"color": "^3.1.3",
|
||||||
"warn-once": "^0.0.1"
|
"warn-once": "^0.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
"@types/react-native": "~0.63.51",
|
"@types/react-native": "~0.63.51",
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-gesture-handler": ">= 1.0.0",
|
"react-native-gesture-handler": ">= 1.0.0",
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ export { default as DrawerItem } from './views/DrawerItem';
|
|||||||
export { default as DrawerItemList } from './views/DrawerItemList';
|
export { default as DrawerItemList } from './views/DrawerItemList';
|
||||||
export { default as DrawerContent } from './views/DrawerContent';
|
export { default as DrawerContent } from './views/DrawerContent';
|
||||||
export { default as DrawerContentScrollView } from './views/DrawerContentScrollView';
|
export { default as DrawerContentScrollView } from './views/DrawerContentScrollView';
|
||||||
export { default as DrawerToggleButton } from './views/DrawerToggleButton';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utilities
|
* Utilities
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
shouldUseActivityState,
|
shouldUseActivityState,
|
||||||
} from 'react-native-screens';
|
} from 'react-native-screens';
|
||||||
import { ResourceSavingView } from '@react-navigation/elements';
|
import { ResourceSavingScene } from '@react-navigation/elements';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
visible: boolean;
|
visible: boolean;
|
||||||
@@ -34,8 +34,8 @@ export default function ScreenFallback({ visible, children, ...rest }: Props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ResourceSavingView visible={visible} {...rest}>
|
<ResourceSavingScene visible={visible} {...rest}>
|
||||||
{children}
|
{children}
|
||||||
</ResourceSavingView>
|
</ResourceSavingScene>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,33 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [1.0.0-next.2](https://github.com/react-navigation/react-navigation/compare/@react-navigation/elements@1.0.0-next.1...@react-navigation/elements@1.0.0-next.2) (2021-03-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* use theme in PlatformPressable ([40439cc](https://github.com/react-navigation/react-navigation/commit/40439ccb420825a1aa480648526a816f2422ea6e))
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* return nearest parent header height for useHeaderHeight ([24b3f73](https://github.com/react-navigation/react-navigation/commit/24b3f739da4b8af8dca77d92c72cfdaa762e564a))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [1.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/elements@1.0.0...@react-navigation/elements@1.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 1.0.0-next.0 (2021-03-09)
|
# 1.0.0-next.0 (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
UI Components for React Navigation.
|
UI Components for React Navigation.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/elements/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/elements/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/elements",
|
"name": "@react-navigation/elements",
|
||||||
"description": "UI Components for React Navigation",
|
"description": "UI Components for React Navigation",
|
||||||
"version": "1.0.0-next.2",
|
"version": "1.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native",
|
"react-native",
|
||||||
"react-navigation",
|
"react-navigation",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-native-masked-view/masked-view": "^0.2.2",
|
"@react-native-masked-view/masked-view": "^0.2.2",
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
"@types/react-native": "~0.63.51",
|
"@types/react-native": "~0.63.51",
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-safe-area-context": ">= 3.0.0"
|
"react-native-safe-area-context": ">= 3.0.0"
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ export default function HeaderBackButton({
|
|||||||
labelVisible = Platform.OS === 'ios',
|
labelVisible = Platform.OS === 'ios',
|
||||||
onLabelLayout,
|
onLabelLayout,
|
||||||
onPress,
|
onPress,
|
||||||
pressColor,
|
pressColorAndroid: customPressColorAndroid,
|
||||||
pressOpacity,
|
|
||||||
screenLayout,
|
screenLayout,
|
||||||
tintColor: customTintColor,
|
tintColor: customTintColor,
|
||||||
titleLayout,
|
titleLayout,
|
||||||
@@ -32,7 +31,7 @@ export default function HeaderBackButton({
|
|||||||
testID,
|
testID,
|
||||||
style,
|
style,
|
||||||
}: HeaderBackButtonProps) {
|
}: HeaderBackButtonProps) {
|
||||||
const { colors } = useTheme();
|
const { dark, colors } = useTheme();
|
||||||
|
|
||||||
const [initialLabelWidth, setInitialLabelWidth] = React.useState<
|
const [initialLabelWidth, setInitialLabelWidth] = React.useState<
|
||||||
undefined | number
|
undefined | number
|
||||||
@@ -46,6 +45,13 @@ export default function HeaderBackButton({
|
|||||||
default: colors.text,
|
default: colors.text,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const pressColorAndroid =
|
||||||
|
customPressColorAndroid !== undefined
|
||||||
|
? customPressColorAndroid
|
||||||
|
: dark
|
||||||
|
? 'rgba(255, 255, 255, .32)'
|
||||||
|
: 'rgba(0, 0, 0, .32)';
|
||||||
|
|
||||||
const handleLabelLayout = (e: LayoutChangeEvent) => {
|
const handleLabelLayout = (e: LayoutChangeEvent) => {
|
||||||
onLabelLayout?.(e);
|
onLabelLayout?.(e);
|
||||||
|
|
||||||
@@ -150,8 +156,7 @@ export default function HeaderBackButton({
|
|||||||
accessibilityLabel={accessibilityLabel}
|
accessibilityLabel={accessibilityLabel}
|
||||||
testID={testID}
|
testID={testID}
|
||||||
onPress={disabled ? undefined : handlePress}
|
onPress={disabled ? undefined : handlePress}
|
||||||
pressColor={pressColor}
|
pressColor={pressColorAndroid}
|
||||||
pressOpacity={pressOpacity}
|
|
||||||
android_ripple={{ borderless: true }}
|
android_ripple={{ borderless: true }}
|
||||||
style={[styles.container, disabled && styles.disabled, style]}
|
style={[styles.container, disabled && styles.disabled, style]}
|
||||||
hitSlop={Platform.select({
|
hitSlop={Platform.select({
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { Platform, Pressable, PressableProps } from 'react-native';
|
import { Platform, Pressable, PressableProps } from 'react-native';
|
||||||
import { useTheme } from '@react-navigation/native';
|
|
||||||
|
|
||||||
export type Props = PressableProps & {
|
export type Props = PressableProps & {
|
||||||
pressColor?: string;
|
pressColor?: string;
|
||||||
@@ -13,30 +12,24 @@ const ANDROID_SUPPORTS_RIPPLE =
|
|||||||
Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;
|
Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlatformPressable provides an abstraction on top of Pressable to handle platform differences.
|
* PlatformPressable provides an abstraction on top of TouchableNativeFeedback and
|
||||||
|
* TouchableOpacity to handle platform differences.
|
||||||
|
*
|
||||||
|
* On Android, you can pass the props of TouchableNativeFeedback.
|
||||||
|
* On other platforms, you can pass the props of TouchableOpacity.
|
||||||
*/
|
*/
|
||||||
export default function PlatformPressable({
|
export default function PlatformPressable({
|
||||||
android_ripple,
|
android_ripple,
|
||||||
pressColor,
|
pressColor = 'rgba(0, 0, 0, .32)',
|
||||||
pressOpacity,
|
pressOpacity,
|
||||||
style,
|
style,
|
||||||
...rest
|
...rest
|
||||||
}: Props) {
|
}: Props) {
|
||||||
const { dark } = useTheme();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
android_ripple={
|
android_ripple={
|
||||||
ANDROID_SUPPORTS_RIPPLE
|
ANDROID_SUPPORTS_RIPPLE
|
||||||
? {
|
? { color: pressColor, ...android_ripple }
|
||||||
color:
|
|
||||||
pressColor !== undefined
|
|
||||||
? pressColor
|
|
||||||
: dark
|
|
||||||
? 'rgba(255, 255, 255, .32)'
|
|
||||||
: 'rgba(0, 0, 0, .32)',
|
|
||||||
...android_ripple,
|
|
||||||
}
|
|
||||||
: undefined
|
: undefined
|
||||||
}
|
}
|
||||||
style={({ pressed }) => [
|
style={({ pressed }) => [
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ export default function Screen(props: Props) {
|
|||||||
const insets = useSafeAreaInsets();
|
const insets = useSafeAreaInsets();
|
||||||
|
|
||||||
const isParentHeaderShown = React.useContext(HeaderShownContext);
|
const isParentHeaderShown = React.useContext(HeaderShownContext);
|
||||||
const parentHeaderHeight = React.useContext(HeaderHeightContext);
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
header,
|
header,
|
||||||
@@ -51,9 +50,7 @@ export default function Screen(props: Props) {
|
|||||||
<HeaderShownContext.Provider
|
<HeaderShownContext.Provider
|
||||||
value={isParentHeaderShown || headerShown !== false}
|
value={isParentHeaderShown || headerShown !== false}
|
||||||
>
|
>
|
||||||
<HeaderHeightContext.Provider
|
<HeaderHeightContext.Provider value={headerShown ? headerHeight : 0}>
|
||||||
value={headerShown ? headerHeight : parentHeaderHeight}
|
|
||||||
>
|
|
||||||
{children}
|
{children}
|
||||||
</HeaderHeightContext.Provider>
|
</HeaderHeightContext.Provider>
|
||||||
</HeaderShownContext.Provider>
|
</HeaderShownContext.Provider>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export { default as getHeaderTitle } from './Header/getHeaderTitle';
|
|||||||
|
|
||||||
export { default as MissingIcon } from './MissingIcon';
|
export { default as MissingIcon } from './MissingIcon';
|
||||||
export { default as PlatformPressable } from './PlatformPressable';
|
export { default as PlatformPressable } from './PlatformPressable';
|
||||||
export { default as ResourceSavingView } from './ResourceSavingView';
|
export { default as ResourceSavingScene } from './ResourceSavingScene';
|
||||||
export { default as SafeAreaProviderCompat } from './SafeAreaProviderCompat';
|
export { default as SafeAreaProviderCompat } from './SafeAreaProviderCompat';
|
||||||
export { default as Screen } from './Screen';
|
export { default as Screen } from './Screen';
|
||||||
|
|
||||||
|
|||||||
@@ -127,16 +127,13 @@ export type HeaderBackButtonProps = {
|
|||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
/**
|
/**
|
||||||
* Callback to call when the button is pressed.
|
* Callback to call when the button is pressed.
|
||||||
|
* By default, this triggers `goBack`.
|
||||||
*/
|
*/
|
||||||
onPress?: () => void;
|
onPress?: () => void;
|
||||||
/**
|
/**
|
||||||
* Color for material ripple (Android >= 5.0 only).
|
* Color for material ripple (Android >= 5.0 only).
|
||||||
*/
|
*/
|
||||||
pressColor?: string;
|
pressColorAndroid?: string;
|
||||||
/**
|
|
||||||
* Opacity when the button is pressed, used when ripple is not supported.
|
|
||||||
*/
|
|
||||||
pressOpacity?: number;
|
|
||||||
/**
|
/**
|
||||||
* Function which returns a React Element to display custom image in header's back button.
|
* Function which returns a React Element to display custom image in header's back button.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -3,17 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-bottom-tabs@6.0.0...@react-navigation/material-bottom-tabs@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-bottom-tabs@5.3.9...@react-navigation/material-bottom-tabs@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-bottom-tabs@5.3.9...@react-navigation/material-bottom-tabs@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
React Navigation integration for [bottom navigation](https://material.io/components/bottom-navigation) component from [`react-native-paper`](https://callstack.github.io/react-native-paper/bottom-navigation.html).
|
React Navigation integration for [bottom navigation](https://material.io/components/bottom-navigation) component from [`react-native-paper`](https://callstack.github.io/react-native-paper/bottom-navigation.html).
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/material-bottom-tab-navigator/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/material-bottom-tab-navigator/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/material-bottom-tabs",
|
"name": "@react-navigation/material-bottom-tabs",
|
||||||
"description": "Integration for bottom navigation component from react-native-paper",
|
"description": "Integration for bottom navigation component from react-native-paper",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native-component",
|
"react-native-component",
|
||||||
"react-component",
|
"react-component",
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
"@types/react-native": "~0.63.51",
|
"@types/react-native": "~0.63.51",
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-paper": ">= 3.0.0",
|
"react-native-paper": ">= 3.0.0",
|
||||||
|
|||||||
@@ -3,17 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-top-tabs@6.0.0...@react-navigation/material-top-tabs@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-top-tabs@5.3.9...@react-navigation/material-top-tabs@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/material-top-tabs@5.3.9...@react-navigation/material-top-tabs@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# `@react-navigation/material-top-tabs`
|
# `@react-navigation/material-top-tabs`
|
||||||
|
|
||||||
React Navigation integration for animated tab view component from [`react-native-tab-view`](https://github.com/satya164/react-native-tab-view).
|
React Navigation integration for animated tab view component from [`react-native-tab-view`](https://github.com/react-native-community/react-native-tab-view).
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/material-top-tab-navigator/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/material-top-tab-navigator/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/material-top-tabs",
|
"name": "@react-navigation/material-top-tabs",
|
||||||
"description": "Integration for the animated tab view component from react-native-tab-view",
|
"description": "Integration for the animated tab view component from react-native-tab-view",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native-component",
|
"react-native-component",
|
||||||
"react-component",
|
"react-component",
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
"warn-once": "^0.0.1"
|
"warn-once": "^0.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
"@types/react-native": "~0.63.51",
|
"@types/react-native": "~0.63.51",
|
||||||
@@ -59,10 +59,10 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-pager-view": ">= 4.0.0",
|
"react-native-pager-view": ">= 1.0.0",
|
||||||
"react-native-tab-view": ">= 3.0.0"
|
"react-native-tab-view": ">= 3.0.0"
|
||||||
},
|
},
|
||||||
"react-native-builder-bob": {
|
"react-native-builder-bob": {
|
||||||
|
|||||||
@@ -3,14 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/native@6.0.0...@react-navigation/native@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/native
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/native@5.8.9...@react-navigation/native@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/native@5.8.9...@react-navigation/native@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
React Native integration for React Navigation.
|
React Native integration for React Navigation.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/getting-started/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/getting-started/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/native",
|
"name": "@react-navigation/native",
|
||||||
"description": "React Native integration for React Navigation",
|
"description": "React Native integration for React Navigation",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native",
|
"react-native",
|
||||||
"react-navigation",
|
"react-navigation",
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/core": "^6.0.0-next.1",
|
"@react-navigation/core": "^6.0.0-next.0",
|
||||||
"escape-string-regexp": "^4.0.0",
|
"escape-string-regexp": "^4.0.0",
|
||||||
"nanoid": "^3.1.20"
|
"nanoid": "^3.1.20"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,14 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/routers@6.0.0...@react-navigation/routers@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
**Note:** Version bump only for package @react-navigation/routers
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/routers@5.6.2...@react-navigation/routers@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/routers@5.6.2...@react-navigation/routers@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ yarn add @react-navigation/routers
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/custom-routers/).
|
Documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/custom-routers/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/routers",
|
"name": "@react-navigation/routers",
|
||||||
"description": "Routers to help build custom navigators",
|
"description": "Routers to help build custom navigators",
|
||||||
"version": "6.0.0-next.1",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react",
|
"react",
|
||||||
"react-native",
|
"react-native",
|
||||||
|
|||||||
@@ -3,74 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
# [6.0.0-next.5](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@6.0.0-next.4...@react-navigation/stack@6.0.0-next.5) (2021-03-14)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* consider header colors when managing statusbar ([3ad2bcb](https://github.com/react-navigation/react-navigation/commit/3ad2bcbaf85996ce0d5e1e961081978a32448899))
|
|
||||||
* consider header colors when managing statusbar ([faee245](https://github.com/react-navigation/react-navigation/commit/faee245d2ec8c59f9e9033d96ae21c5e60d95ba6))
|
|
||||||
|
|
||||||
|
|
||||||
### Code Refactoring
|
|
||||||
|
|
||||||
* move headerMode to options ([aacc1b5](https://github.com/react-navigation/react-navigation/commit/aacc1b525d86f0e0b1bad8016fd85e82024f16e9))
|
|
||||||
|
|
||||||
|
|
||||||
### BREAKING CHANGES
|
|
||||||
|
|
||||||
* headerMode is now moved to options instead of props
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.4](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@6.0.0-next.3...@react-navigation/stack@6.0.0-next.4) (2021-03-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* add special statusbar handling to modal presentation ([a204edd](https://github.com/react-navigation/react-navigation/commit/a204edd012060f0816eddee7a093183aa379d049))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.3](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@6.0.0-next.2...@react-navigation/stack@6.0.0-next.3) (2021-03-12)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* export drawer button ([2c8401d](https://github.com/react-navigation/react-navigation/commit/2c8401d5cb347d37c96e5b30f8ad05c17fd22ea4))
|
|
||||||
* return nearest parent header height for useHeaderHeight ([24b3f73](https://github.com/react-navigation/react-navigation/commit/24b3f739da4b8af8dca77d92c72cfdaa762e564a))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.2](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@6.0.0-next.1...@react-navigation/stack@6.0.0-next.2) (2021-03-11)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* respect headerStatusBarHeight option in Stack ([#9405](https://github.com/react-navigation/react-navigation/issues/9405)) ([8a6511c](https://github.com/react-navigation/react-navigation/commit/8a6511c491b2affbe378d720e613a3e3041ca9c2))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.1](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@6.0.0...@react-navigation/stack@6.0.0-next.1) (2021-03-10)
|
|
||||||
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix peer dep versions ([72f90b5](https://github.com/react-navigation/react-navigation/commit/72f90b50d27eda1315bb750beca8a36f26dafe17))
|
|
||||||
* remove use of deprecated currentlyFocusedField ([038eb87](https://github.com/react-navigation/react-navigation/commit/038eb87c42564f9d733e6870826726d3fb0adaee))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@5.12.6...@react-navigation/stack@6.0.0-next.0) (2021-03-09)
|
# [6.0.0-next.0](https://github.com/react-navigation/react-navigation/compare/@react-navigation/stack@5.12.6...@react-navigation/stack@6.0.0-next.0) (2021-03-09)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
Stack navigator for React Navigation.
|
Stack navigator for React Navigation.
|
||||||
|
|
||||||
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/6.x/stack-navigator/).
|
Installation instructions and documentation can be found on the [React Navigation website](https://reactnavigation.org/docs/stack-navigator/).
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@react-navigation/stack",
|
"name": "@react-navigation/stack",
|
||||||
"description": "Stack navigator component for iOS and Android with animated transitions and gestures",
|
"description": "Stack navigator component for iOS and Android with animated transitions and gestures",
|
||||||
"version": "6.0.0-next.5",
|
"version": "6.0.0-next.0",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"react-native-component",
|
"react-native-component",
|
||||||
"react-component",
|
"react-component",
|
||||||
@@ -41,13 +41,13 @@
|
|||||||
"clean": "del lib"
|
"clean": "del lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/elements": "^1.0.0-next.2",
|
"@react-navigation/elements": "^1.0.0",
|
||||||
"color": "^3.1.3",
|
"color": "^3.1.3",
|
||||||
"react-native-iphone-x-helper": "^1.3.0",
|
"react-native-iphone-x-helper": "^1.3.0",
|
||||||
"warn-once": "^0.0.1"
|
"warn-once": "^0.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0-next.1",
|
"@react-navigation/native": "^6.0.0-next.0",
|
||||||
"@testing-library/react-native": "^7.2.0",
|
"@testing-library/react-native": "^7.2.0",
|
||||||
"@types/color": "^3.0.1",
|
"@types/color": "^3.0.1",
|
||||||
"@types/react": "^16.9.53",
|
"@types/react": "^16.9.53",
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"typescript": "^4.2.3"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@react-navigation/native": "^6.0.0",
|
"@react-navigation/native": "^5.0.5",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
"react-native-gesture-handler": ">= 1.0.0",
|
"react-native-gesture-handler": ">= 1.0.0",
|
||||||
|
|||||||
@@ -160,10 +160,6 @@ export function forModalPresentationIOS({
|
|||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
borderTopLeftRadius: borderRadius,
|
borderTopLeftRadius: borderRadius,
|
||||||
borderTopRightRadius: borderRadius,
|
borderTopRightRadius: borderRadius,
|
||||||
// We don't need these for the animation
|
|
||||||
// But different border radius for corners improves animation perf
|
|
||||||
borderBottomLeftRadius: isIphoneX() ? borderRadius : 0,
|
|
||||||
borderBottomRightRadius: isIphoneX() ? borderRadius : 0,
|
|
||||||
marginTop: index === 0 ? 0 : statusBarHeight,
|
marginTop: index === 0 ? 0 : statusBarHeight,
|
||||||
marginBottom: index === 0 ? 0 : topOffset,
|
marginBottom: index === 0 ? 0 : topOffset,
|
||||||
transform: [{ translateY }, { scale }],
|
transform: [{ translateY }, { scale }],
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import type {
|
|||||||
StackNavigationConfig,
|
StackNavigationConfig,
|
||||||
StackNavigationOptions,
|
StackNavigationOptions,
|
||||||
StackNavigationEventMap,
|
StackNavigationEventMap,
|
||||||
StackHeaderMode,
|
|
||||||
} from '../types';
|
} from '../types';
|
||||||
|
|
||||||
type Props = DefaultNavigatorOptions<StackNavigationOptions> &
|
type Props = DefaultNavigatorOptions<StackNavigationOptions> &
|
||||||
@@ -32,18 +31,13 @@ function StackNavigator({
|
|||||||
...rest
|
...rest
|
||||||
}: Props) {
|
}: Props) {
|
||||||
// @ts-expect-error: headerMode='none' is deprecated
|
// @ts-expect-error: headerMode='none' is deprecated
|
||||||
const headerMode = rest.headerMode as StackHeaderMode | 'none';
|
const isHeaderModeNone = rest.headerMode === 'none';
|
||||||
|
|
||||||
warnOnce(
|
warnOnce(
|
||||||
headerMode === 'none',
|
isHeaderModeNone,
|
||||||
`Stack Navigator: 'headerMode="none"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.`
|
`Stack Navigator: 'headerMode="none"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.`
|
||||||
);
|
);
|
||||||
|
|
||||||
warnOnce(
|
|
||||||
headerMode !== 'none',
|
|
||||||
`Stack Navigator: 'headerMode' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.`
|
|
||||||
);
|
|
||||||
|
|
||||||
const { state, descriptors, navigation } = useNavigationBuilder<
|
const { state, descriptors, navigation } = useNavigationBuilder<
|
||||||
StackNavigationState<ParamListBase>,
|
StackNavigationState<ParamListBase>,
|
||||||
StackRouterOptions,
|
StackRouterOptions,
|
||||||
@@ -55,13 +49,7 @@ function StackNavigator({
|
|||||||
children,
|
children,
|
||||||
screenOptions,
|
screenOptions,
|
||||||
defaultScreenOptions: {
|
defaultScreenOptions: {
|
||||||
headerShown: headerMode !== 'none',
|
headerShown: !isHeaderModeNone,
|
||||||
headerMode:
|
|
||||||
headerMode !== 'none'
|
|
||||||
? headerMode
|
|
||||||
: rest.mode !== 'modal' && Platform.OS === 'ios'
|
|
||||||
? 'float'
|
|
||||||
: 'screen',
|
|
||||||
gestureEnabled: Platform.OS === 'ios',
|
gestureEnabled: Platform.OS === 'ios',
|
||||||
animationEnabled:
|
animationEnabled:
|
||||||
Platform.OS !== 'web' &&
|
Platform.OS !== 'web' &&
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import type * as React from 'react';
|
import type * as React from 'react';
|
||||||
import type { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
import type { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
||||||
|
import type { EdgeInsets } from 'react-native-safe-area-context';
|
||||||
import type {
|
import type {
|
||||||
NavigationProp,
|
NavigationProp,
|
||||||
ParamListBase,
|
ParamListBase,
|
||||||
@@ -148,6 +149,10 @@ export type StackHeaderProps = {
|
|||||||
* Layout of the screen.
|
* Layout of the screen.
|
||||||
*/
|
*/
|
||||||
layout: Layout;
|
layout: Layout;
|
||||||
|
/**
|
||||||
|
* Safe area insets to use in the header, e.g. to apply extra spacing for statusbar and notch.
|
||||||
|
*/
|
||||||
|
insets: EdgeInsets;
|
||||||
/**
|
/**
|
||||||
* Options for the back button.
|
* Options for the back button.
|
||||||
*/
|
*/
|
||||||
@@ -198,12 +203,7 @@ export type StackNavigationOptions = StackHeaderOptions &
|
|||||||
*/
|
*/
|
||||||
header?: (props: StackHeaderProps) => React.ReactNode;
|
header?: (props: StackHeaderProps) => React.ReactNode;
|
||||||
/**
|
/**
|
||||||
* Whether the header floats above the screen or part of the screen.
|
* Whether to show the header. The header is shown by default unless `headerMode` was set to `none`.
|
||||||
* Defaults to `float` on iOS for non-modals, and `screen` for the rest.
|
|
||||||
*/
|
|
||||||
headerMode?: StackHeaderMode;
|
|
||||||
/**
|
|
||||||
* Whether to show the header. The header is shown by default.
|
|
||||||
* Setting this to `false` hides the header.
|
* Setting this to `false` hides the header.
|
||||||
*/
|
*/
|
||||||
headerShown?: boolean;
|
headerShown?: boolean;
|
||||||
@@ -267,6 +267,17 @@ export type StackNavigationOptions = StackHeaderOptions &
|
|||||||
* Not supported on Web.
|
* Not supported on Web.
|
||||||
*/
|
*/
|
||||||
gestureVelocityImpact?: number;
|
gestureVelocityImpact?: number;
|
||||||
|
/**
|
||||||
|
* Safe area insets for the screen. This is used to avoid elements like notch and status bar.
|
||||||
|
* By default, the device's safe area insets are automatically detected. You can override the behavior with this option.
|
||||||
|
* For example, to remove the extra spacing for status bar, pass `safeAreaInsets: { top: 0 }`.
|
||||||
|
*/
|
||||||
|
safeAreaInsets?: {
|
||||||
|
top?: number;
|
||||||
|
right?: number;
|
||||||
|
bottom?: number;
|
||||||
|
left?: number;
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* Whether to detach the previous screen from the view hierarchy to save memory.
|
* Whether to detach the previous screen from the view hierarchy to save memory.
|
||||||
* Set it to `false` if you need the previous screen to be seen through the active screen.
|
* Set it to `false` if you need the previous screen to be seen through the active screen.
|
||||||
@@ -278,6 +289,7 @@ export type StackNavigationOptions = StackHeaderOptions &
|
|||||||
|
|
||||||
export type StackNavigationConfig = {
|
export type StackNavigationConfig = {
|
||||||
mode?: StackCardMode;
|
mode?: StackCardMode;
|
||||||
|
headerMode?: StackHeaderMode;
|
||||||
/**
|
/**
|
||||||
* If `false`, the keyboard will NOT automatically dismiss when navigating to a new screen.
|
* If `false`, the keyboard will NOT automatically dismiss when navigating to a new screen.
|
||||||
* Defaults to `true`.
|
* Defaults to `true`.
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
||||||
import { StackActions, useNavigationState } from '@react-navigation/native';
|
import { StackActions, useNavigationState } from '@react-navigation/native';
|
||||||
import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';
|
import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements';
|
||||||
|
|
||||||
@@ -11,14 +10,13 @@ import type { StackHeaderProps } from '../../types';
|
|||||||
export default React.memo(function Header({
|
export default React.memo(function Header({
|
||||||
back,
|
back,
|
||||||
layout,
|
layout,
|
||||||
|
insets,
|
||||||
progress,
|
progress,
|
||||||
options,
|
options,
|
||||||
route,
|
route,
|
||||||
navigation,
|
navigation,
|
||||||
styleInterpolator,
|
styleInterpolator,
|
||||||
}: StackHeaderProps) {
|
}: StackHeaderProps) {
|
||||||
const insets = useSafeAreaInsets();
|
|
||||||
|
|
||||||
let previousTitle;
|
let previousTitle;
|
||||||
|
|
||||||
// The label for the left back button shows the title of the previous screen
|
// The label for the left back button shows the title of the previous screen
|
||||||
@@ -49,11 +47,7 @@ export default React.memo(function Header({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const statusBarHeight =
|
const statusBarHeight =
|
||||||
options.headerStatusBarHeight !== undefined
|
(isModal && !isFirstRouteInParent) || isParentHeaderShown ? 0 : insets.top;
|
||||||
? options.headerStatusBarHeight
|
|
||||||
: (isModal && !isFirstRouteInParent) || isParentHeaderShown
|
|
||||||
? 0
|
|
||||||
: insets.top;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<HeaderSegment
|
<HeaderSegment
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
ParamListBase,
|
ParamListBase,
|
||||||
} from '@react-navigation/native';
|
} from '@react-navigation/native';
|
||||||
import { HeaderBackContext, getHeaderTitle } from '@react-navigation/elements';
|
import { HeaderBackContext, getHeaderTitle } from '@react-navigation/elements';
|
||||||
|
import type { EdgeInsets } from 'react-native-safe-area-context';
|
||||||
|
|
||||||
import Header from './Header';
|
import Header from './Header';
|
||||||
import {
|
import {
|
||||||
@@ -21,11 +22,13 @@ import type {
|
|||||||
StackHeaderStyleInterpolator,
|
StackHeaderStyleInterpolator,
|
||||||
StackNavigationProp,
|
StackNavigationProp,
|
||||||
StackHeaderProps,
|
StackHeaderProps,
|
||||||
|
GestureDirection,
|
||||||
} from '../../types';
|
} from '../../types';
|
||||||
|
|
||||||
export type Props = {
|
export type Props = {
|
||||||
mode: 'float' | 'screen';
|
mode: 'float' | 'screen';
|
||||||
layout: Layout;
|
layout: Layout;
|
||||||
|
insets: EdgeInsets;
|
||||||
scenes: (Scene | undefined)[];
|
scenes: (Scene | undefined)[];
|
||||||
getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;
|
getPreviousScene: (props: { route: Route<string> }) => Scene | undefined;
|
||||||
getFocusedRoute: () => Route<string>;
|
getFocusedRoute: () => Route<string>;
|
||||||
@@ -34,6 +37,7 @@ export type Props = {
|
|||||||
height: number;
|
height: number;
|
||||||
}) => void;
|
}) => void;
|
||||||
styleInterpolator: StackHeaderStyleInterpolator;
|
styleInterpolator: StackHeaderStyleInterpolator;
|
||||||
|
gestureDirection: GestureDirection;
|
||||||
style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
|
style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -41,9 +45,11 @@ export default function HeaderContainer({
|
|||||||
mode,
|
mode,
|
||||||
scenes,
|
scenes,
|
||||||
layout,
|
layout,
|
||||||
|
insets,
|
||||||
getPreviousScene,
|
getPreviousScene,
|
||||||
getFocusedRoute,
|
getFocusedRoute,
|
||||||
onContentHeightChange,
|
onContentHeightChange,
|
||||||
|
gestureDirection,
|
||||||
styleInterpolator,
|
styleInterpolator,
|
||||||
style,
|
style,
|
||||||
}: Props) {
|
}: Props) {
|
||||||
@@ -57,10 +63,10 @@ export default function HeaderContainer({
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { header, headerMode, headerShown = true, headerTransparent } =
|
const { header, headerShown = true, headerTransparent } =
|
||||||
scene.descriptor.options || {};
|
scene.descriptor.options || {};
|
||||||
|
|
||||||
if (headerMode !== mode || !headerShown) {
|
if (!headerShown) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,27 +90,22 @@ export default function HeaderContainer({
|
|||||||
const previousDescriptor = self[i - 1]?.descriptor;
|
const previousDescriptor = self[i - 1]?.descriptor;
|
||||||
const nextDescriptor = self[i + 1]?.descriptor;
|
const nextDescriptor = self[i + 1]?.descriptor;
|
||||||
|
|
||||||
const {
|
const { headerShown: previousHeaderShown = true } =
|
||||||
headerShown: previousHeaderShown = true,
|
previousDescriptor?.options || {};
|
||||||
headerMode: previousHeaderMode,
|
|
||||||
} = previousDescriptor?.options || {};
|
|
||||||
|
|
||||||
const {
|
const { headerShown: nextHeaderShown = true } =
|
||||||
headerShown: nextHeaderShown = true,
|
nextDescriptor?.options || {};
|
||||||
headerMode: nextHeaderMode,
|
|
||||||
gestureDirection: nextGestureDirection,
|
|
||||||
} = nextDescriptor?.options || {};
|
|
||||||
|
|
||||||
const isHeaderStatic =
|
const isHeaderStatic =
|
||||||
((previousHeaderShown === false || previousHeaderMode === 'screen') &&
|
(previousHeaderShown === false &&
|
||||||
// We still need to animate when coming back from next scene
|
// We still need to animate when coming back from next scene
|
||||||
// A hacky way to check this is if the next scene exists
|
// A hacky way to check this is if the next scene exists
|
||||||
!nextDescriptor) ||
|
!nextDescriptor) ||
|
||||||
nextHeaderShown === false ||
|
nextHeaderShown === false;
|
||||||
nextHeaderMode === 'screen';
|
|
||||||
|
|
||||||
const props: StackHeaderProps = {
|
const props: StackHeaderProps = {
|
||||||
layout,
|
layout,
|
||||||
|
insets,
|
||||||
back: headerBack,
|
back: headerBack,
|
||||||
progress: scene.progress,
|
progress: scene.progress,
|
||||||
options: scene.descriptor.options,
|
options: scene.descriptor.options,
|
||||||
@@ -114,10 +115,10 @@ export default function HeaderContainer({
|
|||||||
styleInterpolator:
|
styleInterpolator:
|
||||||
mode === 'float'
|
mode === 'float'
|
||||||
? isHeaderStatic
|
? isHeaderStatic
|
||||||
? nextGestureDirection === 'vertical' ||
|
? gestureDirection === 'vertical' ||
|
||||||
nextGestureDirection === 'vertical-inverted'
|
gestureDirection === 'vertical-inverted'
|
||||||
? forSlideUp
|
? forSlideUp
|
||||||
: nextGestureDirection === 'horizontal-inverted'
|
: gestureDirection === 'horizontal-inverted'
|
||||||
? forSlideRight
|
? forSlideRight
|
||||||
: forSlideLeft
|
: forSlideLeft
|
||||||
: styleInterpolator
|
: styleInterpolator
|
||||||
|
|||||||
@@ -111,10 +111,6 @@ export default function HeaderSegment(props: Props) {
|
|||||||
headerBackTestID,
|
headerBackTestID,
|
||||||
headerBackAllowFontScaling,
|
headerBackAllowFontScaling,
|
||||||
headerBackTitleStyle,
|
headerBackTitleStyle,
|
||||||
headerTitleContainerStyle,
|
|
||||||
headerLeftContainerStyle,
|
|
||||||
headerRightContainerStyle,
|
|
||||||
headerBackgroundContainerStyle,
|
|
||||||
headerStyle: customHeaderStyle,
|
headerStyle: customHeaderStyle,
|
||||||
headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
|
headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
|
||||||
styleInterpolator,
|
styleInterpolator,
|
||||||
@@ -176,13 +172,10 @@ export default function HeaderSegment(props: Props) {
|
|||||||
layout={layout}
|
layout={layout}
|
||||||
headerTitle={headerTitle}
|
headerTitle={headerTitle}
|
||||||
headerLeft={headerLeft}
|
headerLeft={headerLeft}
|
||||||
headerTitleContainerStyle={[titleStyle, headerTitleContainerStyle]}
|
headerTitleContainerStyle={titleStyle}
|
||||||
headerLeftContainerStyle={[leftButtonStyle, headerLeftContainerStyle]}
|
headerLeftContainerStyle={leftButtonStyle}
|
||||||
headerRightContainerStyle={[rightButtonStyle, headerRightContainerStyle]}
|
headerRightContainerStyle={rightButtonStyle}
|
||||||
headerBackgroundContainerStyle={[
|
headerBackgroundContainerStyle={backgroundStyle}
|
||||||
backgroundStyle,
|
|
||||||
headerBackgroundContainerStyle,
|
|
||||||
]}
|
|
||||||
headerStyle={customHeaderStyle}
|
headerStyle={customHeaderStyle}
|
||||||
headerStatusBarHeight={headerStatusBarHeight}
|
headerStatusBarHeight={headerStatusBarHeight}
|
||||||
{...rest}
|
{...rest}
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ export default class KeyboardManager extends React.Component<Props> {
|
|||||||
|
|
||||||
this.clearKeyboardTimeout();
|
this.clearKeyboardTimeout();
|
||||||
|
|
||||||
const input: InputRef = TextInput.State.currentlyFocusedInput();
|
// @ts-expect-error: blurTextInput accepts both number and ref, but types say only ref
|
||||||
|
const input: InputRef = TextInput.State.currentlyFocusedField();
|
||||||
|
|
||||||
// When a page change begins, blur the currently focused input
|
// When a page change begins, blur the currently focused input
|
||||||
input?.blur();
|
input?.blur();
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { StatusBar, StyleSheet } from 'react-native';
|
|
||||||
import { useTheme } from '@react-navigation/native';
|
|
||||||
import type { EdgeInsets } from 'react-native-safe-area-context';
|
|
||||||
import type { Layout } from '../types';
|
|
||||||
|
|
||||||
type Props = {
|
|
||||||
dark: boolean | undefined;
|
|
||||||
layout: Layout;
|
|
||||||
insets: EdgeInsets;
|
|
||||||
style: any;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function ModalStatusBarManager({
|
|
||||||
dark,
|
|
||||||
layout,
|
|
||||||
insets,
|
|
||||||
style,
|
|
||||||
}: Props) {
|
|
||||||
const { dark: darkTheme } = useTheme();
|
|
||||||
const [overlapping, setOverlapping] = React.useState(true);
|
|
||||||
|
|
||||||
const enabled = layout.width && layout.height > layout.width;
|
|
||||||
const scale = 1 - 20 / layout.width;
|
|
||||||
const offset = (insets.top - 34) * scale;
|
|
||||||
|
|
||||||
const flattenedStyle = StyleSheet.flatten(style);
|
|
||||||
const translateY = flattenedStyle?.transform?.find(
|
|
||||||
(s: any) => s.translateY !== undefined
|
|
||||||
)?.translateY;
|
|
||||||
|
|
||||||
React.useEffect(() => {
|
|
||||||
if (!enabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const listener = ({ value }: { value: number }) => {
|
|
||||||
setOverlapping(value < offset);
|
|
||||||
};
|
|
||||||
|
|
||||||
const sub = translateY?.addListener(listener);
|
|
||||||
|
|
||||||
return () => translateY?.removeListener(sub);
|
|
||||||
}, [enabled, offset, translateY]);
|
|
||||||
|
|
||||||
if (!enabled) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const darkContent = dark ?? !darkTheme;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<StatusBar
|
|
||||||
animated
|
|
||||||
barStyle={overlapping && darkContent ? 'dark-content' : 'light-content'}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -18,8 +18,6 @@ import {
|
|||||||
GestureState,
|
GestureState,
|
||||||
PanGestureHandlerGestureEvent,
|
PanGestureHandlerGestureEvent,
|
||||||
} from '../GestureHandler';
|
} from '../GestureHandler';
|
||||||
import ModalStatusBarManager from '../ModalStatusBarManager';
|
|
||||||
import { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators';
|
|
||||||
import CardAnimationContext from '../../utils/CardAnimationContext';
|
import CardAnimationContext from '../../utils/CardAnimationContext';
|
||||||
import getDistanceForDirection from '../../utils/getDistanceForDirection';
|
import getDistanceForDirection from '../../utils/getDistanceForDirection';
|
||||||
import getInvertedMultiplier from '../../utils/getInvertedMultiplier';
|
import getInvertedMultiplier from '../../utils/getInvertedMultiplier';
|
||||||
@@ -39,7 +37,6 @@ type Props = ViewProps & {
|
|||||||
gesture: Animated.Value;
|
gesture: Animated.Value;
|
||||||
layout: Layout;
|
layout: Layout;
|
||||||
insets: EdgeInsets;
|
insets: EdgeInsets;
|
||||||
headerDarkContent: boolean | undefined;
|
|
||||||
pageOverflowEnabled: boolean;
|
pageOverflowEnabled: boolean;
|
||||||
gestureDirection: GestureDirection;
|
gestureDirection: GestureDirection;
|
||||||
onOpen: () => void;
|
onOpen: () => void;
|
||||||
@@ -467,7 +464,6 @@ export default class Card extends React.Component<Props> {
|
|||||||
gestureEnabled,
|
gestureEnabled,
|
||||||
gestureDirection,
|
gestureDirection,
|
||||||
pageOverflowEnabled,
|
pageOverflowEnabled,
|
||||||
headerDarkContent,
|
|
||||||
children,
|
children,
|
||||||
containerStyle: customContainerStyle,
|
containerStyle: customContainerStyle,
|
||||||
contentStyle,
|
contentStyle,
|
||||||
@@ -527,22 +523,6 @@ export default class Card extends React.Component<Props> {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<CardAnimationContext.Provider value={animationContext}>
|
<CardAnimationContext.Provider value={animationContext}>
|
||||||
{
|
|
||||||
// StatusBar messes with translucent status bar on Android
|
|
||||||
// So we should only enable it on iOS
|
|
||||||
Platform.OS === 'ios' &&
|
|
||||||
overlayEnabled &&
|
|
||||||
index === 0 &&
|
|
||||||
next &&
|
|
||||||
styleInterpolator === forModalPresentationIOS ? (
|
|
||||||
<ModalStatusBarManager
|
|
||||||
dark={headerDarkContent}
|
|
||||||
layout={layout}
|
|
||||||
insets={insets}
|
|
||||||
style={cardStyle}
|
|
||||||
/>
|
|
||||||
) : null
|
|
||||||
}
|
|
||||||
<Animated.View
|
<Animated.View
|
||||||
style={{
|
style={{
|
||||||
// This is a dummy style that doesn't actually change anything visually.
|
// This is a dummy style that doesn't actually change anything visually.
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ type Props = TransitionPreset & {
|
|||||||
layout: Layout;
|
layout: Layout;
|
||||||
gesture: Animated.Value;
|
gesture: Animated.Value;
|
||||||
scene: Scene;
|
scene: Scene;
|
||||||
headerDarkContent: boolean | undefined;
|
|
||||||
safeAreaInsetTop: number;
|
safeAreaInsetTop: number;
|
||||||
safeAreaInsetRight: number;
|
safeAreaInsetRight: number;
|
||||||
safeAreaInsetBottom: number;
|
safeAreaInsetBottom: number;
|
||||||
@@ -64,7 +63,7 @@ type Props = TransitionPreset & {
|
|||||||
mode: StackCardMode;
|
mode: StackCardMode;
|
||||||
headerMode: StackHeaderMode;
|
headerMode: StackHeaderMode;
|
||||||
headerShown: boolean;
|
headerShown: boolean;
|
||||||
hasAbsoluteFloatHeader: boolean;
|
hasAbsoluteHeader: boolean;
|
||||||
headerHeight: number;
|
headerHeight: number;
|
||||||
onHeaderHeightChange: (props: {
|
onHeaderHeightChange: (props: {
|
||||||
route: Route<string>;
|
route: Route<string>;
|
||||||
@@ -92,11 +91,10 @@ function CardContainer({
|
|||||||
getPreviousScene,
|
getPreviousScene,
|
||||||
getFocusedRoute,
|
getFocusedRoute,
|
||||||
mode,
|
mode,
|
||||||
headerDarkContent,
|
|
||||||
headerMode,
|
headerMode,
|
||||||
headerShown,
|
headerShown,
|
||||||
headerStyleInterpolator,
|
headerStyleInterpolator,
|
||||||
hasAbsoluteFloatHeader,
|
hasAbsoluteHeader,
|
||||||
headerHeight,
|
headerHeight,
|
||||||
onHeaderHeightChange,
|
onHeaderHeightChange,
|
||||||
isParentHeaderShown,
|
isParentHeaderShown,
|
||||||
@@ -121,8 +119,6 @@ function CardContainer({
|
|||||||
scene,
|
scene,
|
||||||
transitionSpec,
|
transitionSpec,
|
||||||
}: Props) {
|
}: Props) {
|
||||||
const parentHeaderHeight = React.useContext(HeaderHeightContext);
|
|
||||||
|
|
||||||
const handleOpen = () => {
|
const handleOpen = () => {
|
||||||
const { route } = scene.descriptor;
|
const { route } = scene.descriptor;
|
||||||
|
|
||||||
@@ -250,12 +246,7 @@ function CardContainer({
|
|||||||
importantForAccessibility={focused ? 'auto' : 'no-hide-descendants'}
|
importantForAccessibility={focused ? 'auto' : 'no-hide-descendants'}
|
||||||
pointerEvents={active ? 'box-none' : pointerEvents}
|
pointerEvents={active ? 'box-none' : pointerEvents}
|
||||||
pageOverflowEnabled={headerMode !== 'float' && mode === 'card'}
|
pageOverflowEnabled={headerMode !== 'float' && mode === 'card'}
|
||||||
headerDarkContent={headerDarkContent}
|
containerStyle={hasAbsoluteHeader ? { marginTop: headerHeight } : null}
|
||||||
containerStyle={
|
|
||||||
hasAbsoluteFloatHeader && headerMode !== 'screen'
|
|
||||||
? { marginTop: headerHeight }
|
|
||||||
: null
|
|
||||||
}
|
|
||||||
contentStyle={[{ backgroundColor: colors.background }, cardStyle]}
|
contentStyle={[{ backgroundColor: colors.background }, cardStyle]}
|
||||||
style={[
|
style={[
|
||||||
{
|
{
|
||||||
@@ -272,9 +263,7 @@ function CardContainer({
|
|||||||
<HeaderShownContext.Provider
|
<HeaderShownContext.Provider
|
||||||
value={isParentHeaderShown || headerShown !== false}
|
value={isParentHeaderShown || headerShown !== false}
|
||||||
>
|
>
|
||||||
<HeaderHeightContext.Provider
|
<HeaderHeightContext.Provider value={headerHeight}>
|
||||||
value={headerShown ? headerHeight : parentHeaderHeight}
|
|
||||||
>
|
|
||||||
{renderScene({ route: scene.descriptor.route })}
|
{renderScene({ route: scene.descriptor.route })}
|
||||||
</HeaderHeightContext.Provider>
|
</HeaderHeightContext.Provider>
|
||||||
</HeaderShownContext.Provider>
|
</HeaderShownContext.Provider>
|
||||||
@@ -285,9 +274,11 @@ function CardContainer({
|
|||||||
{renderHeader({
|
{renderHeader({
|
||||||
mode: 'screen',
|
mode: 'screen',
|
||||||
layout,
|
layout,
|
||||||
|
insets,
|
||||||
scenes: [previousScene, scene],
|
scenes: [previousScene, scene],
|
||||||
getPreviousScene,
|
getPreviousScene,
|
||||||
getFocusedRoute,
|
getFocusedRoute,
|
||||||
|
gestureDirection,
|
||||||
styleInterpolator: headerStyleInterpolator,
|
styleInterpolator: headerStyleInterpolator,
|
||||||
onContentHeightChange: onHeaderHeightChange,
|
onContentHeightChange: onHeaderHeightChange,
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import {
|
|||||||
Platform,
|
Platform,
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import type { EdgeInsets } from 'react-native-safe-area-context';
|
import type { EdgeInsets } from 'react-native-safe-area-context';
|
||||||
import Color from 'color';
|
|
||||||
import type {
|
import type {
|
||||||
ParamListBase,
|
ParamListBase,
|
||||||
Route,
|
Route,
|
||||||
@@ -28,10 +27,12 @@ import {
|
|||||||
DefaultTransition,
|
DefaultTransition,
|
||||||
ModalTransition,
|
ModalTransition,
|
||||||
} from '../../TransitionConfigs/TransitionPresets';
|
} from '../../TransitionConfigs/TransitionPresets';
|
||||||
|
import { forNoAnimation as forNoAnimationHeader } from '../../TransitionConfigs/HeaderStyleInterpolators';
|
||||||
import { forNoAnimation as forNoAnimationCard } from '../../TransitionConfigs/CardStyleInterpolators';
|
import { forNoAnimation as forNoAnimationCard } from '../../TransitionConfigs/CardStyleInterpolators';
|
||||||
import getDistanceForDirection from '../../utils/getDistanceForDirection';
|
import getDistanceForDirection from '../../utils/getDistanceForDirection';
|
||||||
import type {
|
import type {
|
||||||
Layout,
|
Layout,
|
||||||
|
StackHeaderMode,
|
||||||
StackCardMode,
|
StackCardMode,
|
||||||
StackDescriptorMap,
|
StackDescriptorMap,
|
||||||
StackNavigationOptions,
|
StackNavigationOptions,
|
||||||
@@ -59,6 +60,7 @@ type Props = {
|
|||||||
getGesturesEnabled: (props: { route: Route<string> }) => boolean;
|
getGesturesEnabled: (props: { route: Route<string> }) => boolean;
|
||||||
renderHeader: (props: HeaderContainerProps) => React.ReactNode;
|
renderHeader: (props: HeaderContainerProps) => React.ReactNode;
|
||||||
renderScene: (props: { route: Route<string> }) => React.ReactNode;
|
renderScene: (props: { route: Route<string> }) => React.ReactNode;
|
||||||
|
headerMode: StackHeaderMode;
|
||||||
isParentHeaderShown: boolean;
|
isParentHeaderShown: boolean;
|
||||||
onTransitionStart: (
|
onTransitionStart: (
|
||||||
props: { route: Route<string> },
|
props: { route: Route<string> },
|
||||||
@@ -106,8 +108,13 @@ const getHeaderHeights = (
|
|||||||
const height =
|
const height =
|
||||||
typeof style.height === 'number' ? style.height : previous[curr.key];
|
typeof style.height === 'number' ? style.height : previous[curr.key];
|
||||||
|
|
||||||
|
const safeAreaInsets = {
|
||||||
|
...insets,
|
||||||
|
...options.safeAreaInsets,
|
||||||
|
};
|
||||||
|
|
||||||
const {
|
const {
|
||||||
headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,
|
headerStatusBarHeight = isParentHeaderShown ? 0 : safeAreaInsets.top,
|
||||||
} = options;
|
} = options;
|
||||||
|
|
||||||
acc[curr.key] =
|
acc[curr.key] =
|
||||||
@@ -379,6 +386,7 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
getGesturesEnabled,
|
getGesturesEnabled,
|
||||||
renderHeader,
|
renderHeader,
|
||||||
renderScene,
|
renderScene,
|
||||||
|
headerMode,
|
||||||
isParentHeaderShown,
|
isParentHeaderShown,
|
||||||
onTransitionStart,
|
onTransitionStart,
|
||||||
onTransitionEnd,
|
onTransitionEnd,
|
||||||
@@ -405,6 +413,20 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
let defaultTransitionPreset =
|
let defaultTransitionPreset =
|
||||||
mode === 'modal' ? ModalTransition : DefaultTransition;
|
mode === 'modal' ? ModalTransition : DefaultTransition;
|
||||||
|
|
||||||
|
if (headerMode !== 'float') {
|
||||||
|
defaultTransitionPreset = {
|
||||||
|
...defaultTransitionPreset,
|
||||||
|
headerStyleInterpolator: forNoAnimationHeader,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
top = insets.top,
|
||||||
|
right = insets.right,
|
||||||
|
bottom = insets.bottom,
|
||||||
|
left = insets.left,
|
||||||
|
} = focusedOptions.safeAreaInsets || {};
|
||||||
|
|
||||||
let activeScreensLimit = 1;
|
let activeScreensLimit = 1;
|
||||||
|
|
||||||
for (let i = scenes.length - 1; i >= 0; i--) {
|
for (let i = scenes.length - 1; i >= 0; i--) {
|
||||||
@@ -422,49 +444,51 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isFloatHeaderAbsolute = this.state.scenes.slice(-2).some((scene) => {
|
const isFloatHeaderAbsolute =
|
||||||
const options = scene.descriptor.options ?? {};
|
headerMode === 'float'
|
||||||
const {
|
? this.state.scenes.slice(-2).some((scene) => {
|
||||||
headerMode = 'screen',
|
const { descriptor } = scene;
|
||||||
headerTransparent,
|
const options = descriptor ? descriptor.options : {};
|
||||||
headerShown = true,
|
const { headerTransparent, headerShown = true } = options;
|
||||||
} = options;
|
|
||||||
|
|
||||||
if (
|
if (headerTransparent || headerShown === false) {
|
||||||
headerTransparent ||
|
return true;
|
||||||
headerShown === false ||
|
}
|
||||||
headerMode === 'screen'
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
})
|
||||||
|
: false;
|
||||||
|
|
||||||
const floatingHeader = (
|
const floatingHeader =
|
||||||
<React.Fragment key="header">
|
headerMode === 'float' ? (
|
||||||
{renderHeader({
|
<React.Fragment key="header">
|
||||||
mode: 'float',
|
{renderHeader({
|
||||||
layout,
|
mode: 'float',
|
||||||
scenes,
|
layout,
|
||||||
getPreviousScene: this.getPreviousScene,
|
insets: { top, right, bottom, left },
|
||||||
getFocusedRoute: this.getFocusedRoute,
|
scenes,
|
||||||
onContentHeightChange: this.handleHeaderLayout,
|
getPreviousScene: this.getPreviousScene,
|
||||||
styleInterpolator:
|
getFocusedRoute: this.getFocusedRoute,
|
||||||
focusedOptions.headerStyleInterpolator !== undefined
|
onContentHeightChange: this.handleHeaderLayout,
|
||||||
? focusedOptions.headerStyleInterpolator
|
gestureDirection:
|
||||||
: defaultTransitionPreset.headerStyleInterpolator,
|
focusedOptions.gestureDirection !== undefined
|
||||||
style: [
|
? focusedOptions.gestureDirection
|
||||||
styles.floating,
|
: defaultTransitionPreset.gestureDirection,
|
||||||
isFloatHeaderAbsolute && [
|
styleInterpolator:
|
||||||
// Without this, the header buttons won't be touchable on Android when headerTransparent: true
|
focusedOptions.headerStyleInterpolator !== undefined
|
||||||
{ height: focusedHeaderHeight },
|
? focusedOptions.headerStyleInterpolator
|
||||||
styles.absolute,
|
: defaultTransitionPreset.headerStyleInterpolator,
|
||||||
|
style: [
|
||||||
|
styles.floating,
|
||||||
|
isFloatHeaderAbsolute && [
|
||||||
|
// Without this, the header buttons won't be touchable on Android when headerTransparent: true
|
||||||
|
{ height: focusedHeaderHeight },
|
||||||
|
styles.absolute,
|
||||||
|
],
|
||||||
],
|
],
|
||||||
],
|
})}
|
||||||
})}
|
</React.Fragment>
|
||||||
</React.Fragment>
|
) : null;
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
@@ -516,11 +540,9 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
safeAreaInsets,
|
||||||
headerShown = true,
|
headerShown = true,
|
||||||
headerMode = 'screen',
|
|
||||||
headerTransparent,
|
headerTransparent,
|
||||||
headerStyle,
|
|
||||||
headerTintColor,
|
|
||||||
cardShadowEnabled,
|
cardShadowEnabled,
|
||||||
cardOverlayEnabled = Platform.OS !== 'ios' || mode === 'modal',
|
cardOverlayEnabled = Platform.OS !== 'ios' || mode === 'modal',
|
||||||
cardOverlay,
|
cardOverlay,
|
||||||
@@ -576,27 +598,16 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const safeAreaInsetTop = insets.top;
|
const {
|
||||||
const safeAreaInsetRight = insets.right;
|
top: safeAreaInsetTop = insets.top,
|
||||||
const safeAreaInsetBottom = insets.bottom;
|
right: safeAreaInsetRight = insets.right,
|
||||||
const safeAreaInsetLeft = insets.left;
|
bottom: safeAreaInsetBottom = insets.bottom,
|
||||||
|
left: safeAreaInsetLeft = insets.left,
|
||||||
|
} = safeAreaInsets || {};
|
||||||
|
|
||||||
const headerHeight =
|
const headerHeight =
|
||||||
headerShown !== false ? headerHeights[route.key] : 0;
|
headerShown !== false ? headerHeights[route.key] : 0;
|
||||||
|
|
||||||
const { backgroundColor: headerBackgroundColor } =
|
|
||||||
StyleSheet.flatten(headerStyle) || {};
|
|
||||||
|
|
||||||
let headerDarkContent: boolean | undefined;
|
|
||||||
|
|
||||||
if (headerShown) {
|
|
||||||
if (headerTintColor) {
|
|
||||||
headerDarkContent = Color(headerTintColor).isDark();
|
|
||||||
} else if (typeof headerBackgroundColor === 'string') {
|
|
||||||
headerDarkContent = !Color(headerBackgroundColor).isDark();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<MaybeScreen
|
<MaybeScreen
|
||||||
key={route.key}
|
key={route.key}
|
||||||
@@ -636,8 +647,7 @@ export default class CardStack extends React.Component<Props, State> {
|
|||||||
mode={mode}
|
mode={mode}
|
||||||
headerMode={headerMode}
|
headerMode={headerMode}
|
||||||
headerShown={headerShown}
|
headerShown={headerShown}
|
||||||
headerDarkContent={headerDarkContent}
|
hasAbsoluteHeader={
|
||||||
hasAbsoluteFloatHeader={
|
|
||||||
isFloatHeaderAbsolute && !headerTransparent
|
isFloatHeaderAbsolute && !headerTransparent
|
||||||
}
|
}
|
||||||
renderHeader={renderHeader}
|
renderHeader={renderHeader}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { View, StyleSheet } from 'react-native';
|
import { View, Platform, StyleSheet } from 'react-native';
|
||||||
import {
|
import {
|
||||||
SafeAreaInsetsContext,
|
SafeAreaInsetsContext,
|
||||||
EdgeInsets,
|
EdgeInsets,
|
||||||
@@ -439,6 +439,9 @@ export default class StackView extends React.Component<Props, State> {
|
|||||||
navigation,
|
navigation,
|
||||||
keyboardHandlingEnabled,
|
keyboardHandlingEnabled,
|
||||||
mode = 'card',
|
mode = 'card',
|
||||||
|
headerMode = mode === 'card' && Platform.OS === 'ios'
|
||||||
|
? 'float'
|
||||||
|
: 'screen',
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
descriptors: _,
|
descriptors: _,
|
||||||
...rest
|
...rest
|
||||||
@@ -476,6 +479,7 @@ export default class StackView extends React.Component<Props, State> {
|
|||||||
onTransitionEnd={this.handleTransitionEnd}
|
onTransitionEnd={this.handleTransitionEnd}
|
||||||
renderHeader={this.renderHeader}
|
renderHeader={this.renderHeader}
|
||||||
renderScene={this.renderScene}
|
renderScene={this.renderScene}
|
||||||
|
headerMode={headerMode}
|
||||||
state={state}
|
state={state}
|
||||||
descriptors={descriptors}
|
descriptors={descriptors}
|
||||||
onGestureStart={this.handleGestureStart}
|
onGestureStart={this.handleGestureStart}
|
||||||
|
|||||||
153
yarn.lock
153
yarn.lock
@@ -2003,26 +2003,6 @@
|
|||||||
xcode "^2.1.0"
|
xcode "^2.1.0"
|
||||||
xml2js "^0.4.23"
|
xml2js "^0.4.23"
|
||||||
|
|
||||||
"@expo/config-plugins@1.0.21":
|
|
||||||
version "1.0.21"
|
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-1.0.21.tgz#5a6f5c818dd7bccc2f3e381cbf8b0657c38bb302"
|
|
||||||
integrity sha512-sMTF0/lx52ovJPz9iH5l0aKRpPFFtYoAQ+38AYhXI890Sswr1UU4Pq3IA5RMdvtOTkTzNREr21WvEHd7X8D1dA==
|
|
||||||
dependencies:
|
|
||||||
"@expo/config-types" "^40.0.0-beta.2"
|
|
||||||
"@expo/configure-splash-screen" "0.3.4"
|
|
||||||
"@expo/image-utils" "0.3.10"
|
|
||||||
"@expo/json-file" "8.2.28-alpha.0"
|
|
||||||
"@expo/plist" "0.0.11"
|
|
||||||
find-up "~5.0.0"
|
|
||||||
fs-extra "9.0.0"
|
|
||||||
getenv "0.7.0"
|
|
||||||
glob "7.1.6"
|
|
||||||
resolve-from "^5.0.0"
|
|
||||||
slash "^3.0.0"
|
|
||||||
slugify "^1.3.4"
|
|
||||||
xcode "^2.1.0"
|
|
||||||
xml2js "^0.4.23"
|
|
||||||
|
|
||||||
"@expo/config-types@^40.0.0-beta.2":
|
"@expo/config-types@^40.0.0-beta.2":
|
||||||
version "40.0.0-beta.2"
|
version "40.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-40.0.0-beta.2.tgz#4fea4ef5654d02218b02b0b3772529a9ce5b0471"
|
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-40.0.0-beta.2.tgz#4fea4ef5654d02218b02b0b3772529a9ce5b0471"
|
||||||
@@ -2066,26 +2046,6 @@
|
|||||||
semver "7.3.2"
|
semver "7.3.2"
|
||||||
slugify "^1.3.4"
|
slugify "^1.3.4"
|
||||||
|
|
||||||
"@expo/config@3.3.31":
|
|
||||||
version "3.3.31"
|
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config/-/config-3.3.31.tgz#6651a06230589bb93f031529537fd2b2b36e566e"
|
|
||||||
integrity sha512-LRNWctdc9TI7C2BIrqShS97LT+Oe2TuazWh5uFdvxT1gMe7N4TslyLwaYHPiOgetukRtTAOP5+ekXXyc656VdA==
|
|
||||||
dependencies:
|
|
||||||
"@babel/core" "7.9.0"
|
|
||||||
"@babel/plugin-proposal-class-properties" "~7.12.13"
|
|
||||||
"@babel/preset-env" "~7.12.13"
|
|
||||||
"@babel/preset-typescript" "~7.12.13"
|
|
||||||
"@expo/config-plugins" "1.0.21"
|
|
||||||
"@expo/config-types" "^40.0.0-beta.2"
|
|
||||||
"@expo/json-file" "8.2.28-alpha.0"
|
|
||||||
fs-extra "9.0.0"
|
|
||||||
getenv "0.7.0"
|
|
||||||
glob "7.1.6"
|
|
||||||
require-from-string "^2.0.2"
|
|
||||||
resolve-from "^5.0.0"
|
|
||||||
semver "7.3.2"
|
|
||||||
slugify "^1.3.4"
|
|
||||||
|
|
||||||
"@expo/configure-splash-screen@0.3.4":
|
"@expo/configure-splash-screen@0.3.4":
|
||||||
version "0.3.4"
|
version "0.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz#b91d8f08fd96272bd3d7aaa9b51d6189b932c7cc"
|
resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz#b91d8f08fd96272bd3d7aaa9b51d6189b932c7cc"
|
||||||
@@ -2102,24 +2062,24 @@
|
|||||||
xcode "^3.0.0"
|
xcode "^3.0.0"
|
||||||
xml-js "^1.6.11"
|
xml-js "^1.6.11"
|
||||||
|
|
||||||
"@expo/dev-server@0.1.57":
|
"@expo/dev-server@0.1.56":
|
||||||
version "0.1.57"
|
version "0.1.56"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.1.57.tgz#9c4af2efc591dd3093fbf14123c51c415e601cf3"
|
resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.1.56.tgz#010fc8552f8d98d2b56137c000151d531d559b0a"
|
||||||
integrity sha512-0N5RArNt1qnkGbUqW2MWC4+FlxbyVuzn2e/QeICBq6mdSC+LT+J0jatbpSGD7Mk76tZtDGduHQBR0MA9Vdqgew==
|
integrity sha512-BXKJW6KB7AckjJkDIM4mmuMhbiP9GQtmfsNoEsXg9Ci1NxJxu4vc/UdaL4tC+SLlDNpKgSIBvSNDY0AdPKUAeA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/bunyan" "4.0.0"
|
"@expo/bunyan" "4.0.0"
|
||||||
"@expo/metro-config" "0.1.57"
|
"@expo/metro-config" "0.1.56"
|
||||||
"@react-native-community/cli-server-api" "4.9.0"
|
"@react-native-community/cli-server-api" "4.9.0"
|
||||||
body-parser "1.19.0"
|
body-parser "1.19.0"
|
||||||
resolve-from "^5.0.0"
|
resolve-from "^5.0.0"
|
||||||
serialize-error "6.0.0"
|
serialize-error "6.0.0"
|
||||||
|
|
||||||
"@expo/dev-tools@0.13.85":
|
"@expo/dev-tools@0.13.84":
|
||||||
version "0.13.85"
|
version "0.13.84"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/dev-tools/-/dev-tools-0.13.85.tgz#c5739202340ed75dfc892294d378923eb959dbb0"
|
resolved "https://registry.yarnpkg.com/@expo/dev-tools/-/dev-tools-0.13.84.tgz#f9fd737c228aca17d777f88dcc76e2ee1af08183"
|
||||||
integrity sha512-brTPqUyk+J+jYrwupCcTDEXXpmQ2cDVYd9tDvpKLZGj8VnuUj2u2miAeJc4rSiKE+N6YYeRwJRF7gghd2NBVkw==
|
integrity sha512-HmN5Gb+uSpLxIhHKjPgRSLZaAEJW8UmV6h2eQmVUrpc+VoT0M4roCHd50xJQv+OqLllgo9ZmmyWHnNckOd+RJA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/config" "3.3.31"
|
"@expo/config" "3.3.30"
|
||||||
base64url "3.0.1"
|
base64url "3.0.1"
|
||||||
express "4.16.4"
|
express "4.16.4"
|
||||||
freeport-async "2.0.0"
|
freeport-async "2.0.0"
|
||||||
@@ -2186,12 +2146,12 @@
|
|||||||
json5 "^1.0.1"
|
json5 "^1.0.1"
|
||||||
write-file-atomic "^2.3.0"
|
write-file-atomic "^2.3.0"
|
||||||
|
|
||||||
"@expo/metro-config@0.1.57":
|
"@expo/metro-config@0.1.56":
|
||||||
version "0.1.57"
|
version "0.1.56"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.1.57.tgz#ac06d55fc0bc79e126278be25a3a50e81004a252"
|
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.1.56.tgz#b200397b765f002d2101079f2df1e41f45d41697"
|
||||||
integrity sha512-SyUDmjIpSy5DE0h32ckdVwB0XbB8jgbbW28MYILUASSLzfC3DmaOqdcNl18jIaewG5hw2eHc2gikd/0TwLN2Vw==
|
integrity sha512-h7IBc8GWzqKhdv2OWqU9tU3i5ZMpoXU1gao+kZzvi02dEAV5GzKxvGPiZu9nsvXeeRlCIpzTHvzFPh5n5mtSnA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/config" "3.3.31"
|
"@expo/config" "3.3.30"
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
getenv "^0.7.0"
|
getenv "^0.7.0"
|
||||||
metro-react-native-babel-transformer "^0.59.0"
|
metro-react-native-babel-transformer "^0.59.0"
|
||||||
@@ -2288,47 +2248,7 @@
|
|||||||
lodash.pick "^4.4.0"
|
lodash.pick "^4.4.0"
|
||||||
lodash.template "^4.5.0"
|
lodash.template "^4.5.0"
|
||||||
|
|
||||||
"@expo/webpack-config@0.12.61":
|
"@expo/webpack-config@0.12.60", "@expo/webpack-config@~0.12.60":
|
||||||
version "0.12.61"
|
|
||||||
resolved "https://registry.yarnpkg.com/@expo/webpack-config/-/webpack-config-0.12.61.tgz#f378945b164a85b8c094fe21844499d0edaf2e1a"
|
|
||||||
integrity sha512-Ymx+DiBtBIo8+PoJ+dw1QEhgvGfJZvRUAIQ6JLxVPzApHMg6J0UUCrtWYByC8+Ax8QcrdSFjphoCGcFfL45/9w==
|
|
||||||
dependencies:
|
|
||||||
"@babel/core" "7.9.0"
|
|
||||||
"@babel/runtime" "7.9.0"
|
|
||||||
"@expo/config" "3.3.31"
|
|
||||||
"@pmmmwh/react-refresh-webpack-plugin" "^0.3.3"
|
|
||||||
babel-loader "8.1.0"
|
|
||||||
chalk "^4.0.0"
|
|
||||||
clean-webpack-plugin "^3.0.0"
|
|
||||||
copy-webpack-plugin "~6.0.3"
|
|
||||||
css-loader "~3.6.0"
|
|
||||||
expo-pwa "0.0.67"
|
|
||||||
file-loader "~6.0.0"
|
|
||||||
find-yarn-workspace-root "~2.0.0"
|
|
||||||
getenv "^0.7.0"
|
|
||||||
html-loader "~1.1.0"
|
|
||||||
html-webpack-plugin "~4.3.0"
|
|
||||||
is-wsl "^2.0.0"
|
|
||||||
mini-css-extract-plugin "^0.5.0"
|
|
||||||
node-html-parser "^1.2.12"
|
|
||||||
optimize-css-assets-webpack-plugin "^5.0.3"
|
|
||||||
pnp-webpack-plugin "^1.5.0"
|
|
||||||
postcss-safe-parser "^4.0.2"
|
|
||||||
progress "^2.0.3"
|
|
||||||
react-dev-utils "~11.0.1"
|
|
||||||
react-refresh "^0.8.2"
|
|
||||||
semver "~7.3.2"
|
|
||||||
style-loader "~1.2.1"
|
|
||||||
terser-webpack-plugin "^3.0.6"
|
|
||||||
url-loader "~4.1.0"
|
|
||||||
webpack "4.43.0"
|
|
||||||
webpack-deep-scope-plugin "1.6.0"
|
|
||||||
webpack-manifest-plugin "~2.2.0"
|
|
||||||
webpackbar "^4.0.0"
|
|
||||||
workbox-webpack-plugin "^3.6.3"
|
|
||||||
worker-loader "^2.0.0"
|
|
||||||
|
|
||||||
"@expo/webpack-config@~0.12.60":
|
|
||||||
version "0.12.60"
|
version "0.12.60"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/webpack-config/-/webpack-config-0.12.60.tgz#382a12b6a256a6cd8528f9969672c5d308ca370e"
|
resolved "https://registry.yarnpkg.com/@expo/webpack-config/-/webpack-config-0.12.60.tgz#382a12b6a256a6cd8528f9969672c5d308ca370e"
|
||||||
integrity sha512-UieL5oLo4rm0jNx/Gzz6gs4fZ37THSdptvy4dQFsHGQrvZgxd1lCHEe4NNv56/Zs3H/FrX7vczpZ2fwS/LXvmQ==
|
integrity sha512-UieL5oLo4rm0jNx/Gzz6gs4fZ37THSdptvy4dQFsHGQrvZgxd1lCHEe4NNv56/Zs3H/FrX7vczpZ2fwS/LXvmQ==
|
||||||
@@ -2379,14 +2299,14 @@
|
|||||||
pouchdb-collections "^1.0.1"
|
pouchdb-collections "^1.0.1"
|
||||||
tiny-queue "^0.2.1"
|
tiny-queue "^0.2.1"
|
||||||
|
|
||||||
"@expo/xdl@59.0.25":
|
"@expo/xdl@59.0.24":
|
||||||
version "59.0.25"
|
version "59.0.24"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/xdl/-/xdl-59.0.25.tgz#f6f5ddaf1292b5ae40e08cfeabb8d91e82c33b8e"
|
resolved "https://registry.yarnpkg.com/@expo/xdl/-/xdl-59.0.24.tgz#b84d3c41ca223b3a5cf9a62dfc8e35e3bcdf0426"
|
||||||
integrity sha512-can8RKDHBAq8NtGMbg25EmJ2RexJJhefTvvIQec4B6aWrydBYzRa2O//zFBP4VX56DyuwajPOk5gLejWEWeHNw==
|
integrity sha512-rl0lJ3z4v0VPu8Z37Vl2sTYSupAVjD6MxUHAJd+FRKgQMb7kyJUTpWvBAlbYCgMM+WH5XZZSvgWdwCTLocwPtw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/bunyan" "4.0.0"
|
"@expo/bunyan" "4.0.0"
|
||||||
"@expo/config" "3.3.31"
|
"@expo/config" "3.3.30"
|
||||||
"@expo/dev-server" "0.1.57"
|
"@expo/dev-server" "0.1.56"
|
||||||
"@expo/devcert" "^1.0.0"
|
"@expo/devcert" "^1.0.0"
|
||||||
"@expo/json-file" "8.2.28-alpha.0"
|
"@expo/json-file" "8.2.28-alpha.0"
|
||||||
"@expo/osascript" "2.0.24"
|
"@expo/osascript" "2.0.24"
|
||||||
@@ -2394,7 +2314,7 @@
|
|||||||
"@expo/plist" "0.0.11"
|
"@expo/plist" "0.0.11"
|
||||||
"@expo/schemer" "1.3.27-alpha.0"
|
"@expo/schemer" "1.3.27-alpha.0"
|
||||||
"@expo/spawn-async" "1.5.0"
|
"@expo/spawn-async" "1.5.0"
|
||||||
"@expo/webpack-config" "0.12.61"
|
"@expo/webpack-config" "0.12.60"
|
||||||
"@hapi/joi" "^17.1.1"
|
"@hapi/joi" "^17.1.1"
|
||||||
"@types/text-table" "^0.2.1"
|
"@types/text-table" "^0.2.1"
|
||||||
analytics-node "3.5.0"
|
analytics-node "3.5.0"
|
||||||
@@ -8954,16 +8874,16 @@ expo-blur@~9.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/expo-blur/-/expo-blur-9.0.0.tgz#6447a65dba3f14532406d9c5227622b3e7d1abf7"
|
resolved "https://registry.yarnpkg.com/expo-blur/-/expo-blur-9.0.0.tgz#6447a65dba3f14532406d9c5227622b3e7d1abf7"
|
||||||
integrity sha512-zqZENclTYBtVAZOsnDROT5PQ9MbMxa5A36J+aU2NiV6MqLYlUh/b/FnR0JPAuY4F6jS6U7sYiAlStzIXpLd7XQ==
|
integrity sha512-zqZENclTYBtVAZOsnDROT5PQ9MbMxa5A36J+aU2NiV6MqLYlUh/b/FnR0JPAuY4F6jS6U7sYiAlStzIXpLd7XQ==
|
||||||
|
|
||||||
expo-cli@^4.3.0:
|
expo-cli@^4.2.1:
|
||||||
version "4.3.0"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/expo-cli/-/expo-cli-4.3.0.tgz#d31106689ed1b95d7b8cd6e62578d121475da0ea"
|
resolved "https://registry.yarnpkg.com/expo-cli/-/expo-cli-4.2.1.tgz#6e17ef32e3485b19ab8f89c06b2a42b2fe0b5281"
|
||||||
integrity sha512-JZTWP7YajZD48VDAMqDmT7cLDqi+9blR/WzTXDlgiUgjYANYPAC8eMZxyuOnEvt0d9hSfEKuq1/mknUogXgjNA==
|
integrity sha512-3qgir7nj1jD7L+ETEUBYQfwsd57GaOTLhJ+6rzwvRwSXdU04oM+nfiZHMyabgKHMzslyHpVnvOod9OjKVWTtuQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/apple-utils" "0.0.0-alpha.17"
|
"@expo/apple-utils" "0.0.0-alpha.17"
|
||||||
"@expo/bunyan" "4.0.0"
|
"@expo/bunyan" "4.0.0"
|
||||||
"@expo/config" "3.3.31"
|
"@expo/config" "3.3.30"
|
||||||
"@expo/config-plugins" "1.0.21"
|
"@expo/config-plugins" "1.0.20"
|
||||||
"@expo/dev-tools" "0.13.85"
|
"@expo/dev-tools" "0.13.84"
|
||||||
"@expo/json-file" "8.2.28-alpha.0"
|
"@expo/json-file" "8.2.28-alpha.0"
|
||||||
"@expo/osascript" "2.0.24"
|
"@expo/osascript" "2.0.24"
|
||||||
"@expo/package-manager" "0.0.39-alpha.0"
|
"@expo/package-manager" "0.0.39-alpha.0"
|
||||||
@@ -8971,7 +8891,7 @@ expo-cli@^4.3.0:
|
|||||||
"@expo/results" "^1.0.0"
|
"@expo/results" "^1.0.0"
|
||||||
"@expo/simple-spinner" "1.0.2"
|
"@expo/simple-spinner" "1.0.2"
|
||||||
"@expo/spawn-async" "1.5.0"
|
"@expo/spawn-async" "1.5.0"
|
||||||
"@expo/xdl" "59.0.25"
|
"@expo/xdl" "59.0.24"
|
||||||
"@hapi/joi" "^17.1.1"
|
"@hapi/joi" "^17.1.1"
|
||||||
babel-runtime "6.26.0"
|
babel-runtime "6.26.0"
|
||||||
base32.js "0.1.0"
|
base32.js "0.1.0"
|
||||||
@@ -9107,17 +9027,6 @@ expo-pwa@0.0.66:
|
|||||||
commander "2.20.0"
|
commander "2.20.0"
|
||||||
update-check "1.5.3"
|
update-check "1.5.3"
|
||||||
|
|
||||||
expo-pwa@0.0.67:
|
|
||||||
version "0.0.67"
|
|
||||||
resolved "https://registry.yarnpkg.com/expo-pwa/-/expo-pwa-0.0.67.tgz#035a3b05dcd78311a0841e6193daf034ca51cd7c"
|
|
||||||
integrity sha512-fyp624qENbSSDkW7So9Je5kDmCKf51leHqvO4Oqro2Yfv58XYJqv/j3MGMXd8rnraTJ0ktsfy0rSwA5/tqpmrQ==
|
|
||||||
dependencies:
|
|
||||||
"@expo/config" "3.3.31"
|
|
||||||
"@expo/image-utils" "0.3.10"
|
|
||||||
chalk "^4.0.0"
|
|
||||||
commander "2.20.0"
|
|
||||||
update-check "1.5.3"
|
|
||||||
|
|
||||||
expo-secure-store@~9.3.0:
|
expo-secure-store@~9.3.0:
|
||||||
version "9.3.0"
|
version "9.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-9.3.0.tgz#b716d5d115cc50a34037d1afef84fe4b8ea0745c"
|
resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-9.3.0.tgz#b716d5d115cc50a34037d1afef84fe4b8ea0745c"
|
||||||
|
|||||||
Reference in New Issue
Block a user