43 lines
928 B
JavaScript
43 lines
928 B
JavaScript
import React from 'react';
|
|||
import { FlatList, StyleSheet } from 'react-native';
|
|||
import Animated from 'react-native-reanimated';
|
|||
import PropTypes from 'prop-types';
|
|||
|
|||
import { isIOS } from '../../../utils/deviceInfo';
|
|||
import scrollPersistTaps from '../../../utils/scrollPersistTaps';
|
|||
|
|||
const AnimatedFlatList = Animated.createAnimatedComponent(FlatList);
|
|||
|
|||
const styles = StyleSheet.create({
|
|||
list: {
|
|||
flex: 1
|
|||
},
|
|||
contentContainer: {
|
|||
paddingTop: 10
|
|||
}
|
|||
});
|
|||
|
|||
const List = ({ listRef, ...props }) => (
|
|||
<AnimatedFlatList
|
|||
testID='room-view-messages'
|
|||
ref={listRef}
|
|||
keyExtractor={item => item.id}
|
|||
contentContainerStyle={styles.contentContainer}
|
|||
style={styles.list}
|
|||
inverted
|
|||
removeClippedSubviews={isIOS}
|
|||
initialNumToRender={7}
|
|||
onEndReachedThreshold={0.5}
|
|||
maxToRenderPerBatch={5}
|
|||
windowSize={10}
|
|||
{...props}
|
|||
{...scrollPersistTaps}
|
|||
/>
|
|||
);
|
|||
|
|||
List.propTypes = {
|
|||
listRef: PropTypes.object
|
|||
};
|
|||
|
|||
export default List;
|