Added start/stop typing listeners

This commit is contained in:
hydrabolt
2015-10-03 15:36:51 +01:00
parent ba69538029
commit b1f2ed64d3
3 changed files with 57 additions and 0 deletions

View File

@@ -64,6 +64,7 @@ var Client = (function () {
this.pmChannelCache = [];
this.readyTime = null;
this.checkingQueue = {};
this.userTypingListener = {};
this.queue = {};
this.__idleTime = null;
@@ -1115,6 +1116,30 @@ var Client = (function () {
break;
case "TYPING_START":
var userInCache = self.getUser("id", data.user_id);
var channelInCache = self.getChannel("id", data.channel_id);
if (!self.userTypingListener[data.user_id] || self.userTypingListener[data.user_id] === -1) {
self.trigger("startTyping", userInCache, channelInCache);
}
self.userTypingListener[data.user_id] = Date.now();
setTimeout(function () {
if (self.userTypingListener[data.user_id] === -1) {
return;
}
if (Date.now() - self.userTypingListener[data.user_id] > 6000) {
// stopped typing
self.trigger("stopTyping", userInCache, channelInCache);
self.userTypingListener[data.user_id] = -1;
}
}, 6000);
break;
default:
self.debug("received unknown packet");
self.trigger("unknown", dat);