summaryrefslogtreecommitdiffstats
path: root/webapp/components/rhs_thread.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-08-22 20:35:28 -0400
committerCorey Hulen <corey@hulen.com>2016-08-22 16:35:28 -0800
commitc3c62ad2ad018be6887149e92dd35bb527f55168 (patch)
tree0402aca6be2f632a0d8d2bd54f7bae1646154842 /webapp/components/rhs_thread.jsx
parentf0c672e3ad64f0daf023d9ef70de940b3354e133 (diff)
downloadchat-c3c62ad2ad018be6887149e92dd35bb527f55168.tar.gz
chat-c3c62ad2ad018be6887149e92dd35bb527f55168.tar.bz2
chat-c3c62ad2ad018be6887149e92dd35bb527f55168.zip
PLT-3982 Add statuses to profile pictures in the RHS and popover member list (#3845)
* Added status indicator back to popover member list * Updating positions of status indicator (#3844) * Fixed squishy profile pictures and added statuses to RHS pics
Diffstat (limited to 'webapp/components/rhs_thread.jsx')
-rw-r--r--webapp/components/rhs_thread.jsx25
1 files changed, 25 insertions, 0 deletions
diff --git a/webapp/components/rhs_thread.jsx b/webapp/components/rhs_thread.jsx
index 856a686cb..b51a12792 100644
--- a/webapp/components/rhs_thread.jsx
+++ b/webapp/components/rhs_thread.jsx
@@ -55,6 +55,7 @@ export default class RhsThread extends React.Component {
this.onUserChange = this.onUserChange.bind(this);
this.forceUpdateInfo = this.forceUpdateInfo.bind(this);
this.onPreferenceChange = this.onPreferenceChange.bind(this);
+ this.onStatusChange = this.onStatusChange.bind(this);
this.handleResize = this.handleResize.bind(this);
const state = this.getPosts();
@@ -63,6 +64,7 @@ export default class RhsThread extends React.Component {
state.profiles = JSON.parse(JSON.stringify(UserStore.getProfiles()));
state.compactDisplay = PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.MESSAGE_DISPLAY, Preferences.MESSAGE_DISPLAY_DEFAULT) === Preferences.MESSAGE_DISPLAY_COMPACT;
state.flaggedPosts = PreferenceStore.getCategory(Constants.Preferences.CATEGORY_FLAGGED_POST);
+ state.statuses = Object.assign({}, UserStore.getStatuses());
this.state = state;
}
@@ -72,6 +74,7 @@ export default class RhsThread extends React.Component {
PostStore.addChangeListener(this.onPostChange);
PreferenceStore.addChangeListener(this.onPreferenceChange);
UserStore.addChangeListener(this.onUserChange);
+ UserStore.addStatusesChangeListener(this.onStatusChange);
this.scrollToBottom();
window.addEventListener('resize', this.handleResize);
@@ -84,6 +87,7 @@ export default class RhsThread extends React.Component {
PostStore.removeChangeListener(this.onPostChange);
PreferenceStore.removeChangeListener(this.onPreferenceChange);
UserStore.removeChangeListener(this.onUserChange);
+ UserStore.removeStatusesChangeListener(this.onStatusChange);
window.removeEventListener('resize', this.handleResize);
@@ -106,6 +110,10 @@ export default class RhsThread extends React.Component {
}
shouldComponentUpdate(nextProps, nextState) {
+ if (!Utils.areObjectsEqual(nextState.statuses, this.state.statuses)) {
+ return true;
+ }
+
if (!Utils.areObjectsEqual(nextState.postsArray, this.state.postsArray)) {
return true;
}
@@ -168,6 +176,10 @@ export default class RhsThread extends React.Component {
}
}
+ onStatusChange() {
+ this.setState({statuses: Object.assign({}, UserStore.getStatuses())});
+ }
+
getPosts() {
const selected = PostStore.getSelectedPost();
const posts = PostStore.getSelectedPostThread();
@@ -251,6 +263,11 @@ export default class RhsThread extends React.Component {
isRootFlagged = this.state.flaggedPosts.get(selected.id) === 'true';
}
+ let rootStatus = 'offline';
+ if (this.state.statuses) {
+ rootStatus = this.state.statuses[profile.id] || 'offline';
+ }
+
return (
<div className='post-right__container'>
<FileUploadOverlay overlayType='right'/>
@@ -281,6 +298,7 @@ export default class RhsThread extends React.Component {
compactDisplay={this.state.compactDisplay}
useMilitaryTime={this.props.useMilitaryTime}
isFlagged={isRootFlagged}
+ status={rootStatus}
/>
<div className='post-right-comments-container'>
{postsArray.map((comPost) => {
@@ -295,6 +313,12 @@ export default class RhsThread extends React.Component {
if (this.state.flaggedPosts) {
isFlagged = this.state.flaggedPosts.get(comPost.id) === 'true';
}
+
+ let status = 'offline';
+ if (this.state.statuses) {
+ status = this.state.statuses[p.id] || 'offline';
+ }
+
return (
<Comment
ref={comPost.id}
@@ -305,6 +329,7 @@ export default class RhsThread extends React.Component {
compactDisplay={this.state.compactDisplay}
useMilitaryTime={this.props.useMilitaryTime}
isFlagged={isFlagged}
+ status={status}
/>
);
})}