From 35615822d8b615c7119182ef4e45db5468db9745 Mon Sep 17 00:00:00 2001 From: Joe Noon Date: Mon, 11 Apr 2016 12:05:50 -0700 Subject: [PATCH 1/2] direction support for rn 0.24+ --- src/DefaultRenderer.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/DefaultRenderer.js b/src/DefaultRenderer.js index 4337862cf..3c4c089b0 100644 --- a/src/DefaultRenderer.js +++ b/src/DefaultRenderer.js @@ -13,6 +13,12 @@ const { RootContainer: NavigationRootContainer, Header: NavigationHeader, } = NavigationExperimental; + +const { + CardStackPanResponder: NavigationCardStackPanResponder, + CardStackStyleInterpolator: NavigationCardStackStyleInterpolator + } = NavigationCard; + import Actions from "./Actions"; import getInitialState from "./State"; import Reducer from "./Reducer"; @@ -49,7 +55,6 @@ export default class DefaultRenderer extends Component { let applyAnimation = selected.applyAnimation || navigationState.applyAnimation; let style = selected.style || navigationState.style; - let direction = selected.direction || navigationState.direction || "horizontal"; let optionals = {}; if (applyAnimation) { @@ -69,7 +74,6 @@ export default class DefaultRenderer extends Component { navigationState={navigationState} style={[styles.animatedView, style]} renderOverlay={this._renderHeader} - direction={direction} renderScene={this._renderCard} {...optionals} /> @@ -84,13 +88,22 @@ export default class DefaultRenderer extends Component { } _renderCard(/*NavigationSceneRendererProps*/ props) { + const isVertical = props.scene.navigationState.direction === "vertical"; + + const animationStyle = props.scene.navigationState.animationStyle || isVertical ? + NavigationCardStackStyleInterpolator.forVertical(props) : + NavigationCardStackStyleInterpolator.forHorizontal(props); + + const panHandlers = props.scene.navigationState.panHandlers || isVertical ? + NavigationCardStackPanResponder.forVertical(props) : + NavigationCardStackPanResponder.forHorizontal(props); + return ( ); From 1256e03cae02e9d3e4bb2a2f9dbfdb3a0bd65b52 Mon Sep 17 00:00:00 2001 From: Joe Noon Date: Mon, 11 Apr 2016 12:33:56 -0700 Subject: [PATCH 2/2] fix || logic and optimize duration 0 --- src/DefaultRenderer.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/DefaultRenderer.js b/src/DefaultRenderer.js index 3c4c089b0..aed2f065b 100644 --- a/src/DefaultRenderer.js +++ b/src/DefaultRenderer.js @@ -64,7 +64,11 @@ export default class DefaultRenderer extends Component { if (duration === null || duration === undefined) duration = navigationState.duration; if (duration !== null && duration !== undefined) { optionals.applyAnimation = function (pos, navState) { - Animated.timing(pos, {toValue: navState.index, duration}).start(); + if (duration === 0) { + pos.setValue(navState.index); + } else { + Animated.timing(pos, {toValue: navState.index, duration}).start(); + } }; } } @@ -90,13 +94,13 @@ export default class DefaultRenderer extends Component { _renderCard(/*NavigationSceneRendererProps*/ props) { const isVertical = props.scene.navigationState.direction === "vertical"; - const animationStyle = props.scene.navigationState.animationStyle || isVertical ? + const animationStyle = props.scene.navigationState.animationStyle || (isVertical ? NavigationCardStackStyleInterpolator.forVertical(props) : - NavigationCardStackStyleInterpolator.forHorizontal(props); + NavigationCardStackStyleInterpolator.forHorizontal(props)); - const panHandlers = props.scene.navigationState.panHandlers || isVertical ? + const panHandlers = props.scene.navigationState.panHandlers || (isVertical ? NavigationCardStackPanResponder.forVertical(props) : - NavigationCardStackPanResponder.forHorizontal(props); + NavigationCardStackPanResponder.forHorizontal(props)); return (