export default class ConversationsList extends ImmutablePureComponent {
static propTypes = {
- conversationIds: ImmutablePropTypes.list.isRequired,
+ conversations: ImmutablePropTypes.list.isRequired,
hasMore: PropTypes.bool,
isLoading: PropTypes.bool,
onLoadMore: PropTypes.func,
shouldUpdateScroll: PropTypes.func,
};
- getCurrentIndex = id => this.props.conversationIds.indexOf(id)
+ getCurrentIndex = id => this.props.conversations.findIndex(x => x.get('id') === id)
handleMoveUp = id => {
const elementIndex = this.getCurrentIndex(id) - 1;
}
handleLoadOlder = debounce(() => {
- const last = this.props.conversationIds.last();
+ const last = this.props.conversations.last();
- if (last) {
- this.props.onLoadMore(last);
+ if (last && last.get('last_status')) {
+ this.props.onLoadMore(last.get('last_status'));
}
}, 300, { leading: true })
render () {
- const { conversationIds, onLoadMore, ...other } = this.props;
+ const { conversations, onLoadMore, ...other } = this.props;
return (
<ScrollableList {...other} onLoadMore={onLoadMore && this.handleLoadOlder} scrollKey='direct' ref={this.setRef}>
- {conversationIds.map(item => (
+ {conversations.map(item => (
<ConversationContainer
- key={item}
- conversationId={item}
+ key={item.get('id')}
+ conversationId={item.get('id')}
onMoveUp={this.handleMoveUp}
onMoveDown={this.handleMoveDown}
/>
import { expandConversations } from '../../../actions/conversations';
const mapStateToProps = state => ({
- conversationIds: state.getIn(['conversations', 'items']).map(x => x.get('id')),
+ conversations: state.getIn(['conversations', 'items']),
isLoading: state.getIn(['conversations', 'isLoading'], true),
hasMore: state.getIn(['conversations', 'hasMore'], false),
});