From 0b71537ff0e117f6845fd9294fa9df34f483c6bb Mon Sep 17 00:00:00 2001 From: nickago Date: Mon, 6 Jul 2015 08:14:42 -0700 Subject: Typing notifier resets on channel change --- web/react/components/msg_typing.jsx | 13 +++++++++---- web/react/stores/channel_store.jsx | 13 +++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'web/react') diff --git a/web/react/components/msg_typing.jsx b/web/react/components/msg_typing.jsx index 9d3904757..3b97fb2ef 100644 --- a/web/react/components/msg_typing.jsx +++ b/web/react/components/msg_typing.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. - +var ChannelStore = require('../stores/channel_store.jsx'); var SocketStore = require('../stores/socket_store.jsx'); var UserStore = require('../stores/user_store.jsx'); @@ -9,12 +9,17 @@ module.exports = React.createClass({ timer: null, lastTime: 0, componentDidMount: function() { - SocketStore.addChangeListener(this._onChange); + ChannelStore.addDiffChannelChangeListener(this._onChange); + SocketStore.addChangeListener(this._onSocketChange); }, componentWillUnmount: function() { - SocketStore.removeChangeListener(this._onChange); + ChannelStore.removeDiffCHannelChangeListener(this._onChange); + SocketStore.removeChangeListener(this._onSocketChange); + }, + _onChange: function() { + this.setState({text:""}) }, - _onChange: function(msg) { + _onSocketChange: function(msg) { if (msg.action == "typing" && this.props.channelId == msg.channel_id && this.props.parentId == msg.props.parent_id) { diff --git a/web/react/stores/channel_store.jsx b/web/react/stores/channel_store.jsx index 3f259bc7d..3713999a6 100644 --- a/web/react/stores/channel_store.jsx +++ b/web/react/stores/channel_store.jsx @@ -12,6 +12,7 @@ var ActionTypes = Constants.ActionTypes; var CHANGE_EVENT = 'change'; var MORE_CHANGE_EVENT = 'change'; var EXTRA_INFO_EVENT = 'extra_info'; +var DIFF_CHANNEL_EVENT = 'change_channel'; var ChannelStore = assign({}, EventEmitter.prototype, { emitChange: function() { @@ -23,6 +24,15 @@ var ChannelStore = assign({}, EventEmitter.prototype, { removeChangeListener: function(callback) { this.removeListener(CHANGE_EVENT, callback); }, + emitDiffChannelChange: function() { + this.emit(DIFF_CHANNEL_EVENT); + }, + addDiffChannelChangeListener: function(callback) { + this.on(DIFF_CHANNEL_EVENT,callback); + }, + removeDiffChannelChangeListener: function(callback) { + this.removeListener(DIFF_CHANNEL_EVENT,callback); + }, emitMoreChange: function() { this.emit(MORE_CHANGE_EVENT); }, @@ -218,6 +228,8 @@ var ChannelStore = assign({}, EventEmitter.prototype, { ChannelStore.dispatchToken = AppDispatcher.register(function(payload) { var action = payload.action; + //console.log(payload); + //console.log(action.type + " " + (action.msg ? action.msg.action : "")) switch(action.type) { @@ -225,6 +237,7 @@ ChannelStore.dispatchToken = AppDispatcher.register(function(payload) { ChannelStore.setCurrentId(action.id); ChannelStore.setLastVisitedName(action.name); ChannelStore.resetCounts(action.id); + ChannelStore.emitDiffChannelChange(); ChannelStore.emitChange(); break; -- cgit v1.2.3-1-g7c22