Compare commits

..

3 Commits

Author SHA1 Message Date
Satyajit Sahoo
1f5000e86b chore: publish
- react-navigation-animated-switch@0.6.2
 - @react-navigation/core@3.7.8
 - react-navigation-drawer@2.5.2
 - react-navigation-material-bottom-tabs@2.3.2
 - @react-navigation/native@3.8.2
 - react-navigation@4.4.2
 - react-navigation-stack@2.8.4
 - react-navigation-tabs@2.9.2
2020-10-02 09:16:08 +02:00
oltrep
6390aacd07 fix: NavigationEvents subscribe events on new nav state (#8920)
If the navigation prop changes, the NavigationEvents component was not
subscribing to the new value. These changes fix this problem and add a
test to verify that behavior.
2020-10-01 16:00:49 +02:00
oltrep
20e2625f35 test: fix usage of routerTestHelper back action (#8844)
Found this case were the key gets set to `{ key: null }` instead of just being `null`. Should I just call `back()` at this point? Because I don't think there is a difference between a `null` vs `undefined` key
2020-09-25 05:44:02 +02:00
19 changed files with 144 additions and 22 deletions

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.6.2](https://github.com/react-navigation/react-navigation/compare/react-navigation-animated-switch@0.6.1...react-navigation-animated-switch@0.6.2) (2020-10-02)
**Note:** Version bump only for package react-navigation-animated-switch
## [0.6.1](https://github.com/react-navigation/react-navigation/compare/react-navigation-animated-switch@0.6.0...react-navigation-animated-switch@0.6.1) (2020-09-24)
**Note:** Version bump only for package react-navigation-animated-switch

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation-animated-switch",
"version": "0.6.1",
"version": "0.6.2",
"description": "Animated switch for React Navigation",
"main": "lib/commonjs/index.js",
"react-native": "lib/module/index.js",
@@ -28,7 +28,7 @@
"react": "~16.13.1",
"react-native": "~0.63.2",
"react-native-reanimated": "~1.13.0",
"react-navigation": "^4.4.1",
"react-navigation": "^4.4.2",
"typescript": "^4.0.3"
},
"peerDependencies": {

View File

@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [3.7.8](https://github.com/react-navigation/react-navigation-core/compare/@react-navigation/core@3.7.7...@react-navigation/core@3.7.8) (2020-10-02)
### Bug Fixes
* NavigationEvents subscribe events on new nav state ([#8920](https://github.com/react-navigation/react-navigation-core/issues/8920)) ([6390aac](https://github.com/react-navigation/react-navigation-core/commit/6390aacd07fd647d925dfec842a766c8aad5272f))
## [3.7.7](https://github.com/react-navigation/react-navigation-core/compare/@react-navigation/core@3.7.6...@react-navigation/core@3.7.7) (2020-09-24)
**Note:** Version bump only for package @react-navigation/core

View File

@@ -1,6 +1,6 @@
{
"name": "@react-navigation/core",
"version": "3.7.7",
"version": "3.7.8",
"description": "Core utilities for the react-navigation framework",
"main": "lib/commonjs/index.js",
"react-native": "lib/module/index.js",

View File

@@ -158,7 +158,7 @@ describe('SwitchRouter', () => {
expect(getSubState(1).routeName).toEqual('A');
// The back action should not switch to B. It should stay on A
back({ key: null });
back(null);
expect(getSubState(1).routeName).toEqual('A');
});

View File

@@ -12,11 +12,28 @@ const EventNames = Object.keys(EventNameToPropName);
class NavigationEvents extends React.Component {
componentDidMount() {
this.subscriptions = {};
// We register all navigation listeners on mount to ensure listener stability across re-render
// A former implementation was replacing (removing/adding) listeners on all update (if prop provided)
// but there were issues (see https://github.com/react-navigation/react-navigation/issues/5058)
this.subscribeAll();
}
componentDidUpdate(prevProps) {
if (this.props.navigation !== prevProps.navigation) {
this.removeAll();
this.subscribeAll();
}
}
componentWillUnmount() {
this.removeAll();
}
getPropListener = (eventName) => this.props[EventNameToPropName[eventName]];
subscribeAll() {
this.subscriptions = {};
EventNames.forEach((eventName) => {
this.subscriptions[eventName] = this.props.navigation.addListener(
eventName,
@@ -28,14 +45,12 @@ class NavigationEvents extends React.Component {
});
}
componentWillUnmount() {
removeAll() {
EventNames.forEach((eventName) => {
this.subscriptions[eventName].remove();
});
}
getPropListener = (eventName) => this.props[EventNameToPropName[eventName]];
render() {
return null;
}

View File

@@ -5,6 +5,13 @@ import NavigationContext from '../NavigationContext';
const createPropListener = () => jest.fn();
const EVENT_TO_PROP_NAME = {
willFocus: 'onWillFocus',
didFocus: 'onDidFocus',
willBlur: 'onWillBlur',
didBlur: 'onDidBlur',
};
// An easy way to create the 4 listeners prop
const createEventListenersProp = () => ({
onWillFocus: createPropListener(),
@@ -122,6 +129,39 @@ describe('NavigationEvents', () => {
checkPropListenerIsCalled('didBlur', 'onDidBlur');
});
it('wires props listeners to latest navigation updates', () => {
const {
navigation,
NavigationListenersAPI,
} = createTestNavigationAndHelpers();
const {
navigation: nextNavigation,
NavigationListenersAPI: nextNavigationListenersAPI,
} = createTestNavigationAndHelpers();
const eventListenerProps = createEventListenersProp();
const component = renderer.create(
<NavigationEvents navigation={navigation} {...eventListenerProps} />
);
Object.entries(EVENT_TO_PROP_NAME).forEach(([eventName, propName]) => {
expect(eventListenerProps[propName]).toHaveBeenCalledTimes(0);
NavigationListenersAPI.call(eventName);
expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);
});
component.update(
<NavigationEvents navigation={nextNavigation} {...eventListenerProps} />
);
Object.entries(EVENT_TO_PROP_NAME).forEach(([eventName, propName]) => {
NavigationListenersAPI.call(eventName);
expect(eventListenerProps[propName]).toHaveBeenCalledTimes(1);
nextNavigationListenersAPI.call(eventName);
expect(eventListenerProps[propName]).toHaveBeenCalledTimes(2);
});
});
it('wire latest props listener to navigation listeners on updates (support closure/arrow functions update)', () => {
const {
navigation,

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.5.2](https://github.com/react-navigation/drawer/compare/react-navigation-drawer@2.5.1...react-navigation-drawer@2.5.2) (2020-10-02)
**Note:** Version bump only for package react-navigation-drawer
## [2.5.1](https://github.com/react-navigation/drawer/compare/react-navigation-drawer@2.5.0...react-navigation-drawer@2.5.1) (2020-09-24)
**Note:** Version bump only for package react-navigation-drawer

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation-drawer",
"version": "2.5.1",
"version": "2.5.2",
"description": "Drawer navigator component for React Navigation",
"main": "lib/commonjs/index.js",
"react-native": "lib/module/index.js",
@@ -49,7 +49,7 @@
"react-native-reanimated": "~1.13.0",
"react-native-screens": "~2.10.1",
"react-native-testing-library": "^6.0.0",
"react-navigation": "^4.4.1",
"react-navigation": "^4.4.2",
"typescript": "^4.0.3"
},
"peerDependencies": {

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.3.2](https://github.com/react-navigation/react-navigation-material-bottom-tabs/compare/react-navigation-material-bottom-tabs@2.3.1...react-navigation-material-bottom-tabs@2.3.2) (2020-10-02)
**Note:** Version bump only for package react-navigation-material-bottom-tabs
## [2.3.1](https://github.com/react-navigation/react-navigation-material-bottom-tabs/compare/react-navigation-material-bottom-tabs@2.3.0...react-navigation-material-bottom-tabs@2.3.1) (2020-09-24)
**Note:** Version bump only for package react-navigation-material-bottom-tabs

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation-material-bottom-tabs",
"version": "2.3.1",
"version": "2.3.2",
"description": "Material Bottom Tab Navigation component for React Navigation",
"main": "lib/commonjs/index.js",
"module": "lib/module/index.js",
@@ -46,7 +46,7 @@
"react": "~16.13.1",
"react-native": "~0.63.2",
"react-native-paper": "^4.2.0",
"react-navigation": "^4.4.1",
"react-navigation": "^4.4.2",
"typescript": "^4.0.3"
},
"peerDependencies": {

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [3.8.2](https://github.com/react-navigation/react-navigation-native/compare/@react-navigation/native@3.8.1...@react-navigation/native@3.8.2) (2020-10-02)
**Note:** Version bump only for package @react-navigation/native
## [3.8.1](https://github.com/react-navigation/react-navigation-native/compare/@react-navigation/native@3.8.0...@react-navigation/native@3.8.1) (2020-09-24)

View File

@@ -1,6 +1,6 @@
{
"name": "@react-navigation/native",
"version": "3.8.1",
"version": "3.8.2",
"description": "React Native support for React Navigation",
"main": "lib/commonjs/index.js",
"react-native": "lib/module/index.js",
@@ -40,7 +40,7 @@
},
"devDependencies": {
"@react-native-community/bob": "^0.16.2",
"@react-navigation/core": "^3.7.7",
"@react-navigation/core": "^3.7.8",
"@types/react-test-renderer": "^16.9.3",
"del-cli": "^3.0.1",
"react": "~16.13.1",

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [4.4.2](https://github.com/react-navigation/react-navigation/compare/react-navigation@4.4.1...react-navigation@4.4.2) (2020-10-02)
**Note:** Version bump only for package react-navigation
## [4.4.1](https://github.com/react-navigation/react-navigation/compare/react-navigation@4.4.0...react-navigation@4.4.1) (2020-09-24)
**Note:** Version bump only for package react-navigation

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation",
"version": "4.4.1",
"version": "4.4.2",
"description": "Routing and navigation for your React Native apps",
"main": "src/index.js",
"types": "typescript/react-navigation.d.ts",
@@ -24,8 +24,8 @@
"react-native": "*"
},
"dependencies": {
"@react-navigation/core": "^3.7.7",
"@react-navigation/native": "^3.8.1"
"@react-navigation/core": "^3.7.8",
"@react-navigation/native": "^3.8.2"
},
"devDependencies": {
"@types/react": "^16.9.44",

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.8.4](https://github.com/react-navigation/react-navigation-stack/compare/react-navigation-stack@2.8.3...react-navigation-stack@2.8.4) (2020-10-02)
**Note:** Version bump only for package react-navigation-stack
## [2.8.3](https://github.com/react-navigation/react-navigation-stack/compare/react-navigation-stack@2.8.2...react-navigation-stack@2.8.3) (2020-09-24)
**Note:** Version bump only for package react-navigation-stack

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation-stack",
"version": "2.8.3",
"version": "2.8.4",
"description": "Stack navigator component for React Navigation",
"main": "lib/commonjs/index.js",
"module": "lib/module/index.js",
@@ -56,7 +56,7 @@
"react-native-gesture-handler": "~1.7.0",
"react-native-safe-area-context": "3.1.4",
"react-native-screens": "~2.10.1",
"react-navigation": "^4.4.1",
"react-navigation": "^4.4.2",
"react-test-renderer": "~16.13.1",
"typescript": "^4.0.3"
},

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.9.2](https://github.com/react-navigation/tabs/compare/react-navigation-tabs@2.9.1...react-navigation-tabs@2.9.2) (2020-10-02)
**Note:** Version bump only for package react-navigation-tabs
## [2.9.1](https://github.com/react-navigation/tabs/compare/react-navigation-tabs@2.9.0...react-navigation-tabs@2.9.1) (2020-09-24)
**Note:** Version bump only for package react-navigation-tabs

View File

@@ -1,6 +1,6 @@
{
"name": "react-navigation-tabs",
"version": "2.9.1",
"version": "2.9.2",
"description": "Tab Navigation components for React Navigation",
"main": "lib/commonjs/index.js",
"module": "lib/module/index.js",
@@ -56,7 +56,7 @@
"react-native-gesture-handler": "~1.7.0",
"react-native-reanimated": "~1.13.0",
"react-native-tab-view": "^2.13.0",
"react-navigation": "^4.4.1",
"react-navigation": "^4.4.2",
"typescript": "^4.0.3"
},
"peerDependencies": {