Authored by 于良

消息中心优化 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);
... ... @@ -78,13 +77,11 @@ export default class MessageCenter extends React.Component {
InteractionManager.runAfterInteractions(() => {
this.listView && this.listView.getScrollResponder().startPullToRefresh();
});
}
_renderSeparator() {
_renderSeparator(sectionID, rowID) {
return (
<View style={styles.separator}/>
<View key={'separator' + sectionID + rowID} style={styles.separator}/>
);
}
... ... @@ -92,12 +89,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 +116,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 +139,11 @@ export default class MessageCenter extends React.Component {
list: list.toArray(),
};
let endReachedText = '暂无更多';
if (list.size == 0) {
endReachedText = '您还没有回复';
}
return (
<View style={styles.container}>
<ListView
... ... @@ -160,16 +165,15 @@ export default class MessageCenter extends React.Component {
}}
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}
/>
}
}}
... ...
... ... @@ -109,7 +109,6 @@ export default class ReplyCell extends React.Component {
createTime,
postInfo,
} = data;
console.log(data);
return (
<View style={styles.container}>
<View style={styles.topContainer}>
... ...
... ... @@ -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,20 +84,20 @@ class MessageCenterContainer extends React.Component {
InteractionManager.runAfterInteractions(() => {
this.props.actions.messageInfo(true);
this.props.actions.replyMessage(true);
// this.props.actions.
});
}
_onEndReached(page) {
this.props.actions.replyMessage(false);
InteractionManager.runAfterInteractions(() => {
this.props.actions.replyMessage(false);
});
}
_onPressSystemCell() {
console.log('system cell press');
this.props.actions.goToSystemMessage();
}
_onPressLikeCell() {
console.log('like cell press');
this.props.actions.goToLikeMessage();
}
... ...
... ... @@ -163,12 +163,15 @@ 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;
return new MessageService().messageInfo(uid)
.then(json => {
// console.log('');
let payload = parseMessageInfo(json);
dispatch(messageInfoSuccess(payload));
})
... ... @@ -180,14 +183,7 @@ 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) {
... ... @@ -195,6 +191,13 @@ export function replyMessage(ptr = false) {
}
}
let limit = 10;
let uid = user.profile.uid;
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;
... ...