1
1
import React from 'react' ;
2
2
import { ActivityIndicator , Dimensions , FlatList , Platform , View } from 'react-native' ;
3
- import { Avatar , ListItem } from 'react-native-elements' ;
3
+ import { Avatar , ListItem , Text } from 'react-native-elements' ;
4
4
import { compose } from 'redux' ;
5
5
import fetch from 'fetch-hoc' ;
6
6
@@ -25,15 +25,20 @@ const leftElementStyle = {
25
25
class CommitList extends React . PureComponent {
26
26
keyExtractor = ( item ) => item . sha
27
27
28
- renderLeftElement = ( item ) => (
29
- < View style = { leftElementStyle } >
30
- < Avatar
31
- source = { { uri : item . author . avatar_url } }
32
- size = 'medium'
33
- rounded
34
- />
35
- </ View >
36
- )
28
+ renderLeftElement = ( item ) => {
29
+ const initials = item . commit . author . name . match ( / \b \w / g) || [ ] ;
30
+
31
+ return (
32
+ < View style = { leftElementStyle } >
33
+ < Avatar
34
+ title = { ( ( initials . shift ( ) || '' ) + ( initials . pop ( ) || '' ) ) }
35
+ source = { { uri : ( item . author && item . author . avatar_url ) || undefined } }
36
+ size = 'medium'
37
+ rounded
38
+ />
39
+ </ View >
40
+ ) ;
41
+ }
37
42
38
43
renderItem = ( { item } ) => (
39
44
< ListItem
@@ -48,6 +53,12 @@ class CommitList extends React.PureComponent {
48
53
renderContent = ( ) => (
49
54
this . props . loading ?
50
55
< ActivityIndicator color = '#87ceeb' /> :
56
+ this . renderFlatList ( )
57
+ )
58
+
59
+ renderFlatList = ( ) => (
60
+ this . props . error ?
61
+ < Text h4 > Error: { this . props . data . message || 'Something went wrong 😕' } </ Text > :
51
62
< FlatList
52
63
keyExtractor = { this . keyExtractor }
53
64
data = { this . props . data }
0 commit comments