From 0e997c6eabae79c99823459b39b885547f824955 Mon Sep 17 00:00:00 2001 From: Joe Noon Date: Wed, 18 May 2016 13:01:13 -0700 Subject: [PATCH] fixes a bug where NavigationPropTypes.SceneRenderer was a plain object Summary: ... used as both a shape and plain object. this splits them out so both parts can be used as needed. NavigationPropTypes.SceneRenderer is a PropTypes shape NavigationPropTypes.SceneRendererProps is the plain object that makes up the shape. Closes https://github.com/facebook/react-native/pull/7518 Differential Revision: D3317322 Pulled By: ericvicenti fbshipit-source-id: e8a31e05130e6647b63f68dbef31bc874550948c --- .../NavigationExperimental/NavigationCard.js | 2 +- .../NavigationExperimental/NavigationCardStack.js | 2 +- .../NavigationExperimental/NavigationHeader.js | 2 +- Libraries/NavigationExperimental/NavigationPropTypes.js | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Libraries/CustomComponents/NavigationExperimental/NavigationCard.js b/Libraries/CustomComponents/NavigationExperimental/NavigationCard.js index 403d7da652..8e2d296606 100644 --- a/Libraries/CustomComponents/NavigationExperimental/NavigationCard.js +++ b/Libraries/CustomComponents/NavigationExperimental/NavigationCard.js @@ -92,7 +92,7 @@ class NavigationCard extends React.Component { props: Props; static propTypes = { - ...NavigationPropTypes.SceneRenderer, + ...NavigationPropTypes.SceneRendererProps, onComponentRef: PropTypes.func.isRequired, panHandlers: NavigationPropTypes.panHandlers, pointerEvents: PropTypes.string.isRequired, diff --git a/Libraries/CustomComponents/NavigationExperimental/NavigationCardStack.js b/Libraries/CustomComponents/NavigationExperimental/NavigationCardStack.js index 90e0837b52..d167af6fa8 100644 --- a/Libraries/CustomComponents/NavigationExperimental/NavigationCardStack.js +++ b/Libraries/CustomComponents/NavigationExperimental/NavigationCardStack.js @@ -90,7 +90,7 @@ class NavigationCardStack extends React.Component { static propTypes = { direction: PropTypes.oneOf([Directions.HORIZONTAL, Directions.VERTICAL]), navigationState: NavigationPropTypes.navigationParentState.isRequired, - onNavigate: NavigationPropTypes.SceneRenderer.onNavigate, + onNavigate: NavigationPropTypes.SceneRendererProps.onNavigate, renderOverlay: PropTypes.func, renderScene: PropTypes.func.isRequired, }; diff --git a/Libraries/CustomComponents/NavigationExperimental/NavigationHeader.js b/Libraries/CustomComponents/NavigationExperimental/NavigationHeader.js index f65beb616b..172b14fc2a 100644 --- a/Libraries/CustomComponents/NavigationExperimental/NavigationHeader.js +++ b/Libraries/CustomComponents/NavigationExperimental/NavigationHeader.js @@ -103,7 +103,7 @@ class NavigationHeader extends React.Component { }; static propTypes = { - ...NavigationPropTypes.SceneRenderer, + ...NavigationPropTypes.SceneRendererProps, renderLeftComponent: PropTypes.func, renderRightComponent: PropTypes.func, renderTitleComponent: PropTypes.func, diff --git a/Libraries/NavigationExperimental/NavigationPropTypes.js b/Libraries/NavigationExperimental/NavigationPropTypes.js index 6a8a048861..6939e81934 100644 --- a/Libraries/NavigationExperimental/NavigationPropTypes.js +++ b/Libraries/NavigationExperimental/NavigationPropTypes.js @@ -65,7 +65,7 @@ const scene = PropTypes.shape({ }); /* NavigationSceneRendererProps */ -const SceneRenderer = { +const SceneRendererProps = { layout: layout.isRequired, navigationState: navigationParentState.isRequired, onNavigate: PropTypes.func.isRequired, @@ -74,6 +74,8 @@ const SceneRenderer = { scenes: PropTypes.arrayOf(scene).isRequired, }; +const SceneRenderer = PropTypes.shape(SceneRendererProps); + /* NavigationPanPanHandlers */ const panHandlers = PropTypes.shape({ onMoveShouldSetResponder: PropTypes.func.isRequired, @@ -111,11 +113,12 @@ module.exports = { extractSceneRendererProps, // Bundled propTypes. - SceneRenderer, + SceneRendererProps, // propTypes action, navigationParentState, navigationState, panHandlers, + SceneRenderer, };