diff --git a/src/TabComplete.js b/src/TabComplete.js
index 8886e21af9..3005411e13 100644
--- a/src/TabComplete.js
+++ b/src/TabComplete.js
@@ -24,10 +24,10 @@ const KEY_WINDOWS = 91;
//
// Capturing group containing the start
// of line or a whitespace char
-// \_______________ __________Capturing group of 1 or more non-whitespace chars
+// \_______________ __________Capturing group of 0 or more non-whitespace chars
// _|__ _|_ followed by the end of line
// / \/ \
-const MATCH_REGEX = /(^|\s)(\S+)$/;
+const MATCH_REGEX = /(^|\s)(\S*)$/;
class TabComplete {
diff --git a/src/TabCompleteEntries.js b/src/TabCompleteEntries.js
index 9aef7736a8..a23050063f 100644
--- a/src/TabCompleteEntries.js
+++ b/src/TabCompleteEntries.js
@@ -127,15 +127,9 @@ MemberEntry.fromMemberList = function(members) {
return 0; // don't care
}
else { // both User objects exist
- if (userA.lastActiveAgo < userB.lastActiveAgo) {
- return -1; // a comes first
- }
- else if (userA.lastActiveAgo > userB.lastActiveAgo) {
- return 1; // b comes first
- }
- else {
- return 0; // same last active ago
- }
+ var lastActiveAgoA = userA.lastActiveAgo || Number.MAX_SAFE_INTEGER;
+ var lastActiveAgoB = userB.lastActiveAgo || Number.MAX_SAFE_INTEGER;
+ return lastActiveAgoA - lastActiveAgoB;
}
}).map(function(m) {
return new MemberEntry(m);
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index dcb16f7231..65dd9534d7 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -455,11 +455,16 @@ module.exports = React.createClass({
},
_updateTabCompleteList: new rate_limited_func(function() {
+ var cli = MatrixClientPeg.get();
+
if (!this.state.room || !this.tabComplete) {
return;
}
+ var members = this.state.room.getJoinedMembers().filter(function(member) {
+ if (member.userId !== cli.credentials.userId) return true;
+ });
this.tabComplete.setCompletionList(
- MemberEntry.fromMemberList(this.state.room.getJoinedMembers()).concat(
+ MemberEntry.fromMemberList(members).concat(
CommandEntry.fromCommands(SlashCommands.getCommandList())
)
);
diff --git a/src/components/views/rooms/EntityTile.js b/src/components/views/rooms/EntityTile.js
index ec586431be..47e3fd3350 100644
--- a/src/components/views/rooms/EntityTile.js
+++ b/src/components/views/rooms/EntityTile.js
@@ -38,6 +38,7 @@ module.exports = React.createClass({
className: React.PropTypes.string,
presenceState: React.PropTypes.string,
presenceActiveAgo: React.PropTypes.number,
+ presenceCurrentlyActive: React.PropTypes.bool,
showInviteButton: React.PropTypes.bool,
shouldComponentUpdate: React.PropTypes.func,
onClick: React.PropTypes.func,
@@ -88,6 +89,7 @@ module.exports = React.createClass({