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
This commit is contained in:
Joe Noon 2016-05-18 13:01:13 -07:00 committed by Facebook Github Bot 7
parent 6796f136f1
commit 0e997c6eab
4 changed files with 8 additions and 5 deletions

View File

@ -92,7 +92,7 @@ class NavigationCard extends React.Component<any, Props, any> {
props: Props;
static propTypes = {
...NavigationPropTypes.SceneRenderer,
...NavigationPropTypes.SceneRendererProps,
onComponentRef: PropTypes.func.isRequired,
panHandlers: NavigationPropTypes.panHandlers,
pointerEvents: PropTypes.string.isRequired,

View File

@ -90,7 +90,7 @@ class NavigationCardStack extends React.Component<DefaultProps, Props, void> {
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,
};

View File

@ -103,7 +103,7 @@ class NavigationHeader extends React.Component<DefaultProps, Props, any> {
};
static propTypes = {
...NavigationPropTypes.SceneRenderer,
...NavigationPropTypes.SceneRendererProps,
renderLeftComponent: PropTypes.func,
renderRightComponent: PropTypes.func,
renderTitleComponent: PropTypes.func,

View File

@ -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,
};