Fix bug where vector freezes on power level event
Make rate_limited_function accept functions with args so we can just ratelimit the event handler & be done with it. Fixes https://github.com/vector-im/vector-web/issues/1877
This commit is contained in:
parent
4b763997df
commit
4ecf5f6372
2 changed files with 6 additions and 4 deletions
|
@ -482,7 +482,9 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onRoomStateMember: function(ev, state, member) {
|
// rate limited because a power level change will emit an event for every
|
||||||
|
// member in the room.
|
||||||
|
onRoomStateMember: new rate_limited_func(function(ev, state, member) {
|
||||||
// ignore if we don't have a room yet
|
// ignore if we don't have a room yet
|
||||||
if (!this.state.room) {
|
if (!this.state.room) {
|
||||||
return;
|
return;
|
||||||
|
@ -511,7 +513,7 @@ module.exports = React.createClass({
|
||||||
member.userId === this.props.ConferenceHandler.getConferenceUserIdForRoom(member.roomId)) {
|
member.userId === this.props.ConferenceHandler.getConferenceUserIdForRoom(member.roomId)) {
|
||||||
this._updateConfCallNotification();
|
this._updateConfCallNotification();
|
||||||
}
|
}
|
||||||
},
|
}, 500),
|
||||||
|
|
||||||
_hasUnsentMessages: function(room) {
|
_hasUnsentMessages: function(room) {
|
||||||
return this._getUnsentMessages(room).length > 0;
|
return this._getUnsentMessages(room).length > 0;
|
||||||
|
|
|
@ -23,13 +23,13 @@ module.exports = function(f, minIntervalMs) {
|
||||||
var now = Date.now();
|
var now = Date.now();
|
||||||
|
|
||||||
if (self.lastCall < now - minIntervalMs) {
|
if (self.lastCall < now - minIntervalMs) {
|
||||||
f.apply(this);
|
f.apply(this, arguments);
|
||||||
self.lastCall = now;
|
self.lastCall = now;
|
||||||
} else if (self.scheduledCall === undefined) {
|
} else if (self.scheduledCall === undefined) {
|
||||||
self.scheduledCall = setTimeout(
|
self.scheduledCall = setTimeout(
|
||||||
() => {
|
() => {
|
||||||
self.scheduledCall = undefined;
|
self.scheduledCall = undefined;
|
||||||
f.apply(this);
|
f.apply(this, arguments);
|
||||||
self.lastCall = now;
|
self.lastCall = now;
|
||||||
},
|
},
|
||||||
(self.lastCall + minIntervalMs) - now
|
(self.lastCall + minIntervalMs) - now
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue