Skip to content
This repository was archived by the owner on Nov 26, 2019. It is now read-only.

Commit 9c1ebdf

Browse files
committed
Tweak the wipe animation to be more accurate
1 parent 58901b2 commit 9c1ebdf

4 files changed

Lines changed: 15 additions & 23 deletions

File tree

src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { View, Text, Button, StyleSheet, Platform } from 'react-native';
2+
import { View, Text, Button, StyleSheet } from 'react-native';
33
import Stack, { SceneProps } from './components/Stack';
44
import { Route } from './types';
55
import { DefaultTransition } from './TransitionConfigs/TransitionPresets';

src/TransitionConfigs/CardStyleInterpolators.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Animated from 'react-native-reanimated';
22
import { CardInterpolationProps, CardInterpolatedStyle } from '../types';
33

4-
const { cond, multiply, sub, interpolate } = Animated;
4+
const { cond, multiply, interpolate } = Animated;
55

66
/**
77
* Standard iOS-style slide in from the right.

src/TransitionConfigs/TransitionPresets.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ import {
66
} from './CardStyleInterpolators';
77
import { forUIKit, forNoAnimation } from './HeaderStyleInterpolators';
88
import {
9-
TransitionSpecIOS,
10-
WipeInFromBottomAndroidSpec,
11-
WipeOutToBottomAndroidSpec,
9+
TransitionIOSSpec,
10+
WipeFromBottomAndroidSpec,
1211
FadeOutToBottomAndroidSpec,
1312
FadeInFromBottomAndroidSpec,
1413
} from './TransitionSpecs';
@@ -22,8 +21,8 @@ export const SlideFromRightIOS: TransitionPreset = {
2221
direction: 'horizontal',
2322
headerMode: 'float',
2423
transitionSpec: {
25-
open: TransitionSpecIOS,
26-
close: TransitionSpecIOS,
24+
open: TransitionIOSSpec,
25+
close: TransitionIOSSpec,
2726
},
2827
cardStyleInterpolator: forHorizontalIOS,
2928
headerStyleInterpolator: forUIKit,
@@ -34,8 +33,8 @@ export const ModalSlideFromBottomIOS: TransitionPreset = {
3433
direction: 'vertical',
3534
headerMode: 'screen',
3635
transitionSpec: {
37-
open: TransitionSpecIOS,
38-
close: TransitionSpecIOS,
36+
open: TransitionIOSSpec,
37+
close: TransitionIOSSpec,
3938
},
4039
cardStyleInterpolator: forVerticalIOS,
4140
headerStyleInterpolator: forNoAnimation,
@@ -58,8 +57,8 @@ export const WipeFromBottomAndroid: TransitionPreset = {
5857
direction: 'vertical',
5958
headerMode: 'screen',
6059
transitionSpec: {
61-
open: WipeInFromBottomAndroidSpec,
62-
close: WipeOutToBottomAndroidSpec,
60+
open: WipeFromBottomAndroidSpec,
61+
close: WipeFromBottomAndroidSpec,
6362
},
6463
cardStyleInterpolator: forWipeFromBottomAndroid,
6564
headerStyleInterpolator: forNoAnimation,

src/TransitionConfigs/TransitionSpecs.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Easing } from 'react-native-reanimated';
22
import { TransitionSpec } from '../types';
33

4-
export const TransitionSpecIOS: TransitionSpec = {
4+
export const TransitionIOSSpec: TransitionSpec = {
55
timing: 'spring',
66
config: {
77
stiffness: 1000,
@@ -32,19 +32,12 @@ export const FadeOutToBottomAndroidSpec: TransitionSpec = {
3232
};
3333

3434
// See http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/res/res/anim/activity_open_enter.xml
35-
export const WipeInFromBottomAndroidSpec: TransitionSpec = {
35+
export const WipeFromBottomAndroidSpec: TransitionSpec = {
3636
timing: 'timing',
3737
config: {
3838
duration: 425,
39-
easing: Easing.bezier(0.4, 0, 0.2, 1),
40-
},
41-
};
42-
43-
// See http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/res/res/anim/activity_close_exit.xml
44-
export const WipeOutToBottomAndroidSpec: TransitionSpec = {
45-
timing: 'timing',
46-
config: {
47-
duration: 425,
48-
easing: Easing.bezier(0.4, 0, 0.2, 1),
39+
// This is super rough approximation of the path used for the curve by android
40+
// See http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/res/res/interpolator/fast_out_extra_slow_in.xml
41+
easing: Easing.bezier(0.35, 0.45, 0, 1),
4942
},
5043
};

0 commit comments

Comments
 (0)