ayand04

Untitled

Nov 20th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.20 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import {
  3. View,
  4. FlatList,
  5. Alert,
  6. Animated
  7. } from 'react-native';
  8. import {
  9. ThemeProvider,
  10. Toolbar,
  11. ListItem,
  12. } from 'react-native-material-ui';
  13. import { Button } from 'react-native-elements';
  14. import CustomStatusBar from '../statusBar/statusBar';
  15. import ProfilePic from './profilePicture';
  16. import CenterComponent from './centerElement';
  17. import uiTheme from '../../themes/defaultTheme';
  18. import styles from './styles';
  19.  
  20. export default class recentChatListScreen extends Component
  21. {
  22. state = {
  23. scrollY: new Animated.Value(0)
  24. };
  25.  
  26. _renderItem = ({item}) => (
  27. <ListItem
  28. divider={true}
  29. numberOfLines={2}
  30. onPress={() => Alert.alert('Single Tap')}
  31. onLongPress={() => Alert.alert('Long Tap')}
  32. leftElement={
  33. <ProfilePic image={item.avatar} theme={uiTheme}/>
  34. }
  35. centerElement={
  36. <CenterComponent
  37. primaryText={item.chatWith}
  38. secondaryText={item.lastMessage}
  39. timestamp={item.lastMessageTime}
  40. unreadCount={item.unreadMessages}
  41. theme={uiTheme}
  42. />
  43. }
  44. />
  45. );
  46.  
  47. render() {
  48. const elevate = this.state.scrollY.interpolate({
  49. inputRange: [0, 1],
  50. outputRange: [0, 7],
  51. extrapolate: 'clamp'
  52. });
  53.  
  54. console.log(elevate);
  55. return (
  56. <ThemeProvider uiTheme={uiTheme}>
  57. <View style={styles.contentWrapper}>
  58. <CustomStatusBar themeColor={uiTheme.palette.primaryColor} elevation={0}/>
  59. <View>
  60. <Toolbar
  61. leftElement="menu"
  62. centerElement="Aloha"
  63. searchable={{
  64. autoFocus: true,
  65. placeholder: 'Search your chats',
  66. }}
  67. onLeftElementPress={() => this.props.navigation.navigate('DrawerOpen')}
  68. style={{container: {elevation: elevate}}}
  69. />
  70. </View>
  71. <View style={styles.chatListContainer}>
  72. <FlatList
  73. data={[
  74. {
  75. userId: 1,
  76. messageId: 'a',
  77. avatar: '',
  78. chatWith: 'Jane Doe',
  79. lastMessage: 'This line here will show the last message and takes up the whole line',
  80. lastMessageTime: 1509693517,
  81. unreadMessages: 0
  82. },
  83. {
  84. userId: 2,
  85. messageId: 'b',
  86. avatar: 'https://pbs.twimg.com/profile_images/718588760003383296/2AG8omMO_400x400.jpg',
  87. chatWith: 'John Doe',
  88. lastMessage: 'This line here will show the last loooooong message',
  89. lastMessageTime: 1509520707,
  90. unreadMessages: 100
  91. },
  92. {
  93. userId: 3,
  94. messageId: 'c',
  95. avatar: 'https://pbs.twimg.com/profile_images/907811115459125248/i8AzK6gR_400x400.jpg',
  96. chatWith: 'John Doe',
  97. lastMessage: 'This line here will show the last message',
  98. lastMessageTime: 1510134380,
  99. unreadMessages: 1
  100. },
  101. {
  102. userId: 4,
  103. messageId: 'c',
  104. avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/kfriedson/128.jpg',
  105. chatWith: 'John Doe',
  106. lastMessage: 'This line here will show the last message to show it extends and forms ellipsis',
  107. lastMessageTime: 1510246390,
  108. unreadMessages: 0
  109. },
  110. {
  111. userId: 5,
  112. messageId: 'd',
  113. avatar: '',
  114. chatWith: 'John Doe',
  115. lastMessage: 'This line here will show the last message',
  116. lastMessageTime: 1510134380,
  117. unreadMessages: 55
  118. },
  119. {
  120. userId: 6,
  121. messageId: 'e',
  122. avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/brynn/128.jpg',
  123. chatWith: 'John Doe',
  124. lastMessage: 'This line here will show the last message',
  125. lastMessageTime: 1510134380,
  126. unreadMessages: 1
  127. },
  128. {
  129. userId: 7,
  130. messageId: 'f',
  131. avatar: '',
  132. chatWith: 'John Doe',
  133. lastMessage: 'This line here will show the last message',
  134. lastMessageTime: 1510134380,
  135. unreadMessages: 0
  136. },
  137. {
  138. userId: 8,
  139. messageId: 'g',
  140. avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/ladylexy/128.jpg',
  141. chatWith: 'John Doe',
  142. lastMessage: 'This line here will show the last message',
  143. lastMessageTime: 1510134380,
  144. unreadMessages: 1
  145. },
  146. {
  147. userId: 9,
  148. messageId: 'h',
  149. avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/adhamdannaway/128.jpg',
  150. chatWith: 'John Doe',
  151. lastMessage: 'This line here will show the last message',
  152. lastMessageTime: 1510134380,
  153. unreadMessages: 1
  154. }
  155. ]}
  156. renderItem={this._renderItem}
  157. keyExtractor={item => item.userId}
  158. scrollEventThrottle={16}
  159. onScroll={Animated.event(
  160. [{nativeEvent: {contentOffset: {y: this.state.scrollY}}}]
  161. )}
  162. />
  163. <Button
  164. icon={{name:"chat", size: 26}}
  165. title="START CHAT"
  166. raised
  167. borderRadius={50}
  168. containerViewStyle={uiTheme.button.container}
  169. buttonStyle={uiTheme.button.buttonStyle}
  170. fontWeight="500"
  171. />
  172. </View>
  173. </View>
  174. </ThemeProvider>
  175. );
  176. }
  177. }
Add Comment
Please, Sign In to add comment