Skip to content

Commit 4a3300c

Browse files
authored
react-native-animatable - removing dep (#1544)
1 parent 889f053 commit 4a3300c

File tree

3 files changed

+10
-67
lines changed

3 files changed

+10
-67
lines changed

demo/src/screens/componentScreens/BasicListScreen.tsx

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,18 @@
1-
import {sample} from 'lodash';
21
import React, {Component} from 'react';
32
import {StyleSheet, Alert, FlatList} from 'react-native';
4-
import * as Animatable from 'react-native-animatable';
5-
import {Colors, BorderRadiuses, ListItem, Text} from 'react-native-ui-lib';
3+
import {Colors, BorderRadiuses, View, Image, ListItem, Text} from 'react-native-ui-lib';
64
import orders, {OrderType} from '../../data/orders';
75

8-
type BasicListScreenState = {
9-
onEdit: boolean;
10-
updating: boolean;
11-
}
12-
13-
export default class BasicListScreen extends Component<{}, BasicListScreenState> {
14-
15-
constructor(props: any) {
16-
super(props);
176

18-
this.state = {
19-
onEdit: false,
20-
updating: false
21-
};
22-
}
23-
24-
getRandomDelay(delays = [20, 120, 220], options: any) {
25-
return {
26-
animation: 'fadeInLeft',
27-
easing: 'ease-out-expo',
28-
duration: 600,
29-
delay: sample(delays),
30-
useNativeDriver: true,
31-
...options
32-
};
33-
}
7+
export default class BasicListScreen extends Component {
348

359
keyExtractor = (item: OrderType) => item.name;
3610

3711
renderRow(row: OrderType, id: number) {
3812
const statusColor = row.inventory.status === 'Paid' ? Colors.green30 : Colors.red30;
39-
const animationProps = {
40-
animation: 'fadeInRight',
41-
easing: 'ease-out-expo',
42-
duration: 500,
43-
useNativeDriver: true
44-
};
45-
const imageAnimationProps = this.getRandomDelay(undefined, undefined);
4613

4714
return (
48-
<Animatable.View {...animationProps}>
15+
<View>
4916
<ListItem
5017
// @ts-expect-error
5118
activeBackgroundColor={Colors.dark60}
@@ -54,7 +21,7 @@ export default class BasicListScreen extends Component<{}, BasicListScreenState>
5421
onPress={() => Alert.alert(`pressed on order #${id + 1}`)}
5522
>
5623
<ListItem.Part left>
57-
<Animatable.Image source={{uri: row.mediaUrl}} style={styles.image} {...imageAnimationProps} />
24+
<Image source={{uri: row.mediaUrl}} style={styles.image}/>
5825
</ListItem.Part>
5926
<ListItem.Part middle column containerStyle={[styles.border, {paddingRight: 17}]}>
6027
<ListItem.Part containerStyle={{marginBottom: 3}}>
@@ -78,7 +45,7 @@ export default class BasicListScreen extends Component<{}, BasicListScreenState>
7845
</ListItem.Part>
7946
</ListItem.Part>
8047
</ListItem>
81-
</Animatable.View>
48+
</View>
8249
);
8350
}
8451

demo/src/screens/componentScreens/ContactsListScreen.js

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,17 @@
11
import React, {Component} from 'react';
22
import {StyleSheet, Alert, FlatList} from 'react-native';
3-
import {View as AnimatableView} from 'react-native-animatable';
4-
import {Colors, ListItem, Text, Avatar, AvatarHelper} from 'react-native-ui-lib'; //eslint-disable-line
3+
import {Colors, View, ListItem, Text, Avatar, AvatarHelper} from 'react-native-ui-lib'; //eslint-disable-line
54
import conversations from '../../data/conversations';
65

76

87
export default class ContactsListScreen extends Component {
9-
10-
constructor(props) {
11-
super(props);
12-
13-
this.state = {
14-
onEdit: false,
15-
updating: false
16-
};
17-
}
18-
19-
getEntranceByIndex = (index = 0, options) => {
20-
return {
21-
animation: 'itemEntrance',
22-
easing: 'ease-out-quint',
23-
duration: 600,
24-
delay: 10 + (Number(index) % 12) * 100,
25-
useNativeDriver: true,
26-
...options
27-
};
28-
};
29-
30-
keyExtractor = item => item.name;
8+
keyExtractor = (item, index) => `${item.name}.${index}`;
319

3210
renderRow(row, id) {
3311
const initials = AvatarHelper.getInitials(row.name);
34-
const animationProps = this.getEntranceByIndex(id);
3512

3613
return (
37-
<AnimatableView {...animationProps}>
14+
<View>
3815
<ListItem
3916
key={id}
4017
onPress={() => Alert.alert(`pressed on contact #${id + 1}`)}
@@ -51,7 +28,7 @@ export default class ContactsListScreen extends Component {
5128
<Text text70>{row.name}</Text>
5229
</ListItem.Part>
5330
</ListItem>
54-
</AnimatableView>
31+
</View>
5532
);
5633
}
5734

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
"memoize-one": "^5.0.5",
5555
"moment": "^2.24.0",
5656
"prop-types": "^15.5.10",
57-
"react-native-animatable": "^1.1.0",
5857
"react-native-color": "0.0.10",
5958
"react-native-redash": "^12.0.3",
6059
"react-native-text-size": "4.0.0-rc.1",
@@ -124,7 +123,7 @@
124123
"jest": {
125124
"preset": "react-native",
126125
"transformIgnorePatterns": [
127-
"node_modules/(?!(@react-native|react-native|react-native-animatable|react-native-reanimated|react-native-redash)/)"
126+
"node_modules/(?!(@react-native|react-native|react-native-reanimated|react-native-redash)/)"
128127
],
129128
"testPathIgnorePatterns": [
130129
"/e2e/",

0 commit comments

Comments
 (0)