summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authornickago <ngonella@calpoly.edu>2015-07-13 08:34:34 -0700
committernickago <ngonella@calpoly.edu>2015-07-13 08:34:34 -0700
commit614992dcb7b4a4cdcedefe3ca813a03b758a97f0 (patch)
tree7cb940e47842d47aa08c68949a10d19d5a67cf58 /web
parentb63d42c2c6256ab5e904939a83d7e3eb530e101e (diff)
downloadchat-614992dcb7b4a4cdcedefe3ca813a03b758a97f0.tar.gz
chat-614992dcb7b4a4cdcedefe3ca813a03b758a97f0.tar.bz2
chat-614992dcb7b4a4cdcedefe3ca813a03b758a97f0.zip
Added timestamp updates to right side and cleaned code
Diffstat (limited to 'web')
-rw-r--r--web/react/components/post.jsx2
-rw-r--r--web/react/components/post_list.jsx22
-rw-r--r--web/react/components/post_right.jsx18
3 files changed, 28 insertions, 14 deletions
diff --git a/web/react/components/post.jsx b/web/react/components/post.jsx
index 2d25e31e0..04b5ba082 100644
--- a/web/react/components/post.jsx
+++ b/web/react/components/post.jsx
@@ -85,7 +85,7 @@ module.exports = React.createClass({
<div className="post__content">
<PostHeader post={post} sameRoot={this.props.sameRoot} commentCount={commentCount} handleCommentClick={this.handleCommentClick} isLastComment={this.props.isLastComment} />
<PostBody post={post} sameRoot={this.props.sameRoot} parentPost={parentPost} posts={posts} handleCommentClick={this.handleCommentClick} />
- <PostInfo ref="info" post={post} sameRoot={this.props.sameRoot} commentCount={commentCount} handleCommentClick={this.handleCommentClick} allowReply="true" />
+ <PostInfo post={post} sameRoot={this.props.sameRoot} commentCount={commentCount} handleCommentClick={this.handleCommentClick} allowReply="true" />
</div>
</div>
</div>
diff --git a/web/react/components/post_list.jsx b/web/react/components/post_list.jsx
index 59f33fb4d..e186fb706 100644
--- a/web/react/components/post_list.jsx
+++ b/web/react/components/post_list.jsx
@@ -63,7 +63,7 @@ module.exports = React.createClass({
oldScrollHeight: 0,
oldZoom: 0,
scrolledToNew: false,
- p: 0,
+ preForcePosision: 0,
wasForced: false,
componentDidMount: function() {
var user = UserStore.getCurrentUser();
@@ -80,6 +80,7 @@ module.exports = React.createClass({
PostStore.addChangeListener(this._onChange);
ChannelStore.addChangeListener(this._onChange);
+ UserStore.addStatusesChangeListener(this._onTimeChange);
SocketStore.addChangeListener(this._onSocketChange);
$(".post-list-holder-by-time").perfectScrollbar();
@@ -110,8 +111,7 @@ module.exports = React.createClass({
$(post_holder).scroll(function(e){
if (self.wasForced) {
- console.log('hit');
- $(post_holder).scrollTop(self.p);
+ $(post_holder).scrollTop(self.preForcePosision);
$(post_holder).perfectScrollbar('update');
self.wasForced = false;
}
@@ -165,6 +165,7 @@ module.exports = React.createClass({
componentWillUnmount: function() {
PostStore.removeChangeListener(this._onChange);
ChannelStore.removeChangeListener(this._onChange);
+ UserStore.removeStatusesChangeListener(this._onTimeChange);
SocketStore.removeChangeListener(this._onSocketChange);
$('body').off('click.userpopover');
},
@@ -201,13 +202,7 @@ module.exports = React.createClass({
this.scrolledToNew = false;
}
this.setState(newState);
- } else {
- // Updates the timestamp on each post
- this.wasForced = true;
- this.p = $(".post-list-holder-by-time").scrollTop();
- this.forceUpdate()
- //this.refs.post0.refs.info.forceUpdate();
- }
+ }
},
_onSocketChange: function(msg) {
if (msg.action == "posted") {
@@ -271,6 +266,11 @@ module.exports = React.createClass({
AsyncClient.getProfiles();
}
},
+ _onTimeChange: function() {
+ this.wasForced = true;
+ this.preForcePosision = $(".post-list-holder-by-time").scrollTop();
+ this.forceUpdate()
+ },
getMorePosts: function(e) {
e.preventDefault();
@@ -461,7 +461,7 @@ module.exports = React.createClass({
isLastComment = (i === 0 || posts[order[i-1]].root_id != post.root_id);
}
- var postCtl = <Post ref={"post"+(order.length-i-1)}sameUser={sameUser} sameRoot={sameRoot} post={post} parentPost={parentPost} key={post.id} posts={posts} hideProfilePic={hideProfilePic} isLastComment={isLastComment} />;
+ var postCtl = <Post sameUser={sameUser} sameRoot={sameRoot} post={post} parentPost={parentPost} key={post.id} posts={posts} hideProfilePic={hideProfilePic} isLastComment={isLastComment} />;
currentPostDay = utils.getDateForUnixTicks(post.create_at);
if(currentPostDay.getDate() !== previousPostDay.getDate() || currentPostDay.getMonth() !== previousPostDay.getMonth() || currentPostDay.getFullYear() !== previousPostDay.getFullYear()) {
diff --git a/web/react/components/post_right.jsx b/web/react/components/post_right.jsx
index 115ee87d4..89a616d27 100644
--- a/web/react/components/post_right.jsx
+++ b/web/react/components/post_right.jsx
@@ -279,9 +279,11 @@ function getStateFromStores() {
}
module.exports = React.createClass({
+ wasForced: false,
componentDidMount: function() {
PostStore.addSelectedPostChangeListener(this._onChange);
PostStore.addChangeListener(this._onChangeAll);
+ UserStore.addStatusesChangeListener(this._onTimeChange);
this.resize();
var self = this;
$(window).resize(function(){
@@ -289,11 +291,15 @@ module.exports = React.createClass({
});
},
componentDidUpdate: function() {
- this.resize();
+ if(!this.wasForced){
+ this.resize();
+ wasForced = false
+ }
},
componentWillUnmount: function() {
PostStore.removeSelectedPostChangeListener(this._onChange);
PostStore.removeChangeListener(this._onChangeAll);
+ UserStore.removeStatusesChangeListener(this._onTimeChange)
},
_onChange: function() {
if (this.isMounted()) {
@@ -333,6 +339,14 @@ module.exports = React.createClass({
this.setState(getStateFromStores());
}
},
+ _onTimeChange: function() {
+ this.wasForced = true;
+ for (var key in this.refs) {
+ if(this.refs[key].forceUpdate != undefined) {
+ this.refs[key].forceUpdate();
+ }
+ }
+ },
getInitialState: function() {
return getStateFromStores();
},
@@ -392,7 +406,7 @@ module.exports = React.createClass({
<RootPost post={root_post} commentCount={posts_array.length}/>
<div className="post-right-comments-container">
{ posts_array.map(function(cpost) {
- return <CommentPost key={cpost.id} post={cpost} selected={ (cpost.id == selected_post.id) } />
+ return <CommentPost ref={cpost.id} key={cpost.id} post={cpost} selected={ (cpost.id == selected_post.id) } />
})}
</div>
<div className="post-create__container">