Authored by 于良

消息中心bug fix review by 盖剑秋

... ... @@ -64,7 +64,6 @@ export default class MessageCenter extends React.Component {
constructor(props) {
super(props);
// this.currentPage = 0;
this._renderRow = this._renderRow.bind(this);
this._renderSeparator = this._renderSeparator.bind(this);
... ... @@ -81,10 +80,9 @@ export default class MessageCenter extends React.Component {
}
_renderSeparator() {
_renderSeparator(sectionID, rowID) {
return (
<View style={styles.separator}/>
<View key={'separator' + sectionID + rowID} style={styles.separator}/>
);
}
... ... @@ -92,12 +90,14 @@ export default class MessageCenter extends React.Component {
switch (sectionID) {
case 'sysMsg':
return (<MsgCenterCatgoryCell
title={'系统消息'}
data={rowData}
onPressCell={this.props.onPressSystemCell}
defaultSource={require('../../images/message/sysmessage.png')}
/>);
return (
<MsgCenterCatgoryCell
title={'系统消息'}
data={rowData}
onPressCell={this.props.onPressSystemCell}
defaultSource={require('../../images/message/sysmessage.png')}
/>
);
break;
case 'likeMsg':
... ... @@ -117,6 +117,7 @@ export default class MessageCenter extends React.Component {
}
return (
<MsgCenterNormalCell
key={sectionID + rowID}
onPressAvatar={this.props.onPressAvatar}
onPressSection={this.props.onPressSection}
onPressPost={this.props.onPressPost}
... ... @@ -139,6 +140,11 @@ export default class MessageCenter extends React.Component {
list: list.toArray(),
};
let endReachedText = '暂无更多';
if (list.size == 0) {
endReachedText = '您还没有回复';
}
return (
<View style={styles.container}>
<ListView
... ... @@ -156,24 +162,21 @@ export default class MessageCenter extends React.Component {
this.props.onRefresh && this.props.onRefresh();
}}
onEndReached={() => {
this.props.onEndReached && this.props.onEndReached(this.currentPage);
this.props.onEndReached && this.props.onEndReached();
}}
renderFooter={() => {
if (endReached) {
console.log('没有更多啦');
return <LoadMoreIndicator
isVisible={true}
text={'没有更多啦'}
isVisible={true}
text={endReachedText}
/>
} else {
console.log('加载更多');
return <LoadMoreIndicator
isVisible={isLoadingMore}
animating={isFetching}
isVisible={isLoadingMore}
animating={isFetching}
/>
}
}}
/>
</View>
... ...
... ... @@ -109,7 +109,7 @@ export default class ReplyCell extends React.Component {
createTime,
postInfo,
} = data;
console.log(data);
return (
<View style={styles.container}>
<View style={styles.topContainer}>
... ...
... ... @@ -44,7 +44,7 @@ function mapDispatchToProps(dispatch) {
}
}
class LikeMessageContainer extends React.Component {
class LikeListContainer extends React.Component {
constructor(props) {
super(props);
... ... @@ -104,4 +104,4 @@ let styles = StyleSheet.create({
});
export default connect(mapStateToProps, mapDispatchToProps)(LikeMessageContainer);
export default connect(mapStateToProps, mapDispatchToProps)(LikeListContainer);
... ...
... ... @@ -62,7 +62,6 @@ class MessageCenterContainer extends React.Component {
_onPressAvatar(uid) {
console.log('avatar');
this.props.actions.goToUserThatNotMe(uid);
}
... ... @@ -78,7 +77,6 @@ class MessageCenterContainer extends React.Component {
}
_onPressSection(section) {
console.log('section id = ' + section);
this.props.actions.goToSection(section);
}
... ... @@ -86,12 +84,11 @@ class MessageCenterContainer extends React.Component {
InteractionManager.runAfterInteractions(() => {
this.props.actions.messageInfo(true);
this.props.actions.replyMessage(true);
// this.props.actions.
});
}
_onEndReached(page) {
_onEndReached() {
InteractionManager.runAfterInteractions(() => {
this.props.actions.messageInfo(false);
this.props.actions.replyMessage(false);
});
}
... ... @@ -126,6 +123,7 @@ class MessageCenterContainer extends React.Component {
likeMsg={Immutable.fromJS([likeMsg])}
onPressPost={this._onPressPost}
onRefresh={this._onRefresh}
onEndReached={this._onEndReached}
onPressSystemMsg={this._onPressSystemMsg}
onPressAvatar={this._onPressAvatar}
onPressSection={this._onPressSection}
... ...
... ... @@ -163,6 +163,10 @@ export function messageInfo(ptr = false) {
return (dispatch, getState) => {
let {user, message} = getState();
if (message.centerMsg.isFetching) {
return;
}
dispatch(messageInfoRequest(ptr));
let uid = user.profile.uid;
... ... @@ -180,21 +184,20 @@ export function messageInfo(ptr = false) {
export function replyMessage(ptr = false) {
return (dispatch, getState) => {
let limit = 10;
let {user, message} = getState();
let uid = user.profile.uid;
let lastedTime = 0;
if (!ptr) {
lastedTime = message.centerMsg.lastedTime;
}
if (!ptr) {
if (message.centerMsg.ptr || message.centerMsg.isFetching || message.centerMsg.endReached || message.centerMsg.error) {
return;
}
}
let uid = user.profile.uid;
let limit = 10;
let lastedTime = 0;
if (!ptr) {
lastedTime = message.centerMsg.lastedTime;
}
dispatch(replyMessageRequest(ptr));
return new MessageService().messageList(uid, 3, lastedTime, limit)
... ...
... ... @@ -64,7 +64,8 @@ export default function message(state = initialState, action) {
{
let nextState = state.setIn(['centerMsg', 'sysMsg'], action.payload.sysMsg)
.setIn(['centerMsg', 'likeMsg'], action.payload.likeMsg)
.setIn(['centerMsg', 'isFetching'], false);
.setIn(['centerMsg', 'isFetching'], false)
.setIn(['centerMsg', 'ptr'], false);
return nextState;
}
... ... @@ -73,7 +74,8 @@ export default function message(state = initialState, action) {
case MESSAGE_INFO_FAILURE:
{
let nextState = state.setIn(['centerMsg', 'error'], action.payload)
.setIn(['centerMsg', 'isFetching'], false);
.setIn(['centerMsg', 'isFetching'], false)
.setIn(['centerMsg', 'ptr'], false);
return nextState;
}
... ... @@ -94,8 +96,7 @@ export default function message(state = initialState, action) {
.setIn(['centerMsg', 'error'], null)
.setIn(['centerMsg', 'lastedTime'], lastedTime)
.setIn(['centerMsg', 'endReached'], endReached)
.setIn(['centerMsg', 'list'], Immutable.fromJS(list))
.setIn(['centerMsg', 'ptr'], false);
.setIn(['centerMsg', 'list'], Immutable.fromJS(list));
return nextState;
}
break;
... ...