...
|
...
|
@@ -13,10 +13,13 @@ import ReactNative, { |
|
|
} from 'react-native';
|
|
|
|
|
|
import LoadMoreIndicator from '../../../common/components/LoadMoreIndicator';
|
|
|
import LoadingIndicator from '../../../common/components/LoadingIndicator';
|
|
|
import EmptyContent from './EmptyContent';
|
|
|
import MessageListCellHeader from './MessageListCellHeader';
|
|
|
import MessageListSmallIconCell from './MessageListSmallIconCell';
|
|
|
import MessageListBigIconCell from './MessageListBigIconCell';
|
|
|
import MessageListTextCell from './MessageListTextCell';
|
|
|
import MessageListOrderCell from './MessageListOrderCell';
|
|
|
|
|
|
export default class MessageList extends Component {
|
|
|
|
...
|
...
|
@@ -26,39 +29,104 @@ export default class MessageList extends Component { |
|
|
this.dataSource = new ListView.DataSource({
|
|
|
rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
|
|
|
});
|
|
|
this.loadMessageListCell = this.loadMessageListCell.bind(this);
|
|
|
}
|
|
|
componentDidMount() {
|
|
|
}
|
|
|
|
|
|
loadMessageListCell(rowData) {
|
|
|
let cellType = rowData.get('businessType');
|
|
|
switch (cellType) {
|
|
|
case 100:
|
|
|
case 101:
|
|
|
case 102:
|
|
|
case 103:
|
|
|
case 202:
|
|
|
case 203:
|
|
|
case 204:
|
|
|
case 205:
|
|
|
case 206:
|
|
|
case 207:
|
|
|
case 306:
|
|
|
{
|
|
|
return(
|
|
|
<MessageListSmallIconCell
|
|
|
itemData={rowData}
|
|
|
onPressListItem={this.props.onPressListItem}
|
|
|
/>
|
|
|
);
|
|
|
}
|
|
|
break;
|
|
|
case 200:
|
|
|
case 201:
|
|
|
case 403:
|
|
|
{
|
|
|
return(
|
|
|
<MessageListBigIconCell
|
|
|
itemData={rowData}
|
|
|
onPressListItem={this.props.onPressListItem}
|
|
|
/>
|
|
|
);
|
|
|
}
|
|
|
break;
|
|
|
case 300:
|
|
|
case 301:
|
|
|
case 302:
|
|
|
case 303:
|
|
|
case 304:
|
|
|
case 305:
|
|
|
case 402:
|
|
|
{
|
|
|
return(
|
|
|
<MessageListOrderCell
|
|
|
itemData={rowData}
|
|
|
onPressListItem={this.props.onPressListItem}
|
|
|
/>
|
|
|
);
|
|
|
}
|
|
|
break;
|
|
|
case 400:
|
|
|
case 401:
|
|
|
{
|
|
|
return(
|
|
|
<MessageListTextCell
|
|
|
itemData={rowData}
|
|
|
/>
|
|
|
);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
return(
|
|
|
<View />
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
renderRow(rowData, sectionID, rowID) {
|
|
|
return (
|
|
|
<View style= {styles.cellContainer}>
|
|
|
<MessageListCellHeader
|
|
|
timestamp= {'09:30'}
|
|
|
/>
|
|
|
|
|
|
<MessageListSmallIconCell
|
|
|
data= {rowData}
|
|
|
timestamp= {rowData.get('create_date')}
|
|
|
/>
|
|
|
{this.loadMessageListCell(rowData)}
|
|
|
</View>
|
|
|
// <MessageListBigIconCell />
|
|
|
|
|
|
);
|
|
|
}
|
|
|
|
|
|
render() {
|
|
|
let {isFetching, endReached, list, listId} = this.props.data;
|
|
|
let {isFetching, endReached, list, listId, shouldShowEmpty} = this.props.data;
|
|
|
let isLoadingMore = list.size != 0 && isFetching;
|
|
|
let shouldShowEmpty = list.size == 0 && !isFetching;
|
|
|
|
|
|
if (shouldShowEmpty) {
|
|
|
return (
|
|
|
<View style={styles.container}>
|
|
|
<EmptyContent listId={listId}/>
|
|
|
<EmptyContent
|
|
|
listId={listId}
|
|
|
onPressEmptyItem={this.props.onPressEmptyItem}
|
|
|
/>
|
|
|
</View>
|
|
|
);
|
|
|
}
|
|
|
|
|
|
return (
|
|
|
<View style={styles.container}>
|
|
|
<ListView
|
...
|
...
|
@@ -85,6 +153,9 @@ export default class MessageList extends Component { |
|
|
}
|
|
|
}}
|
|
|
/>
|
|
|
<LoadingIndicator
|
|
|
isVisible={isFetching}
|
|
|
/>
|
|
|
</View>
|
|
|
);
|
|
|
}
|
...
|
...
|
|