forked from gusgard/react-native-swiper-flatlist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
56 lines (52 loc) · 1.5 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { TouchableOpacity, View, ViewPropTypes } from 'react-native';
import { colors } from '../../themes';
import styles from './styles';
export default class Pagination extends PureComponent {
static propTypes = {
scrollToIndex: PropTypes.func.isRequired,
data: PropTypes.array,
paginationIndex: PropTypes.number,
paginationActiveColor: PropTypes.string,
paginationDefaultColor: PropTypes.string,
paginationStyle: ViewPropTypes.style,
paginationStyleItem: ViewPropTypes.style,
};
static defaultProps = {
data: [],
paginationIndex: 0,
paginationActiveColor: colors.white,
paginationDefaultColor: colors.gray,
paginationStyle: {},
paginationStyleItem: {},
};
render() {
const {
data,
paginationIndex,
scrollToIndex,
paginationDefaultColor,
paginationActiveColor,
paginationStyle,
paginationStyleItem,
} = this.props;
return (
<View style={[styles.container, paginationStyle]}>
{data.map((_, index) => (
<TouchableOpacity
style={[
styles.pagination,
paginationStyleItem,
paginationIndex === index
? { backgroundColor: paginationActiveColor }
: { backgroundColor: paginationDefaultColor },
]}
key={index}
onPress={() => scrollToIndex(index)}
/>
))}
</View>
);
}
}