Merge redundant functions into one

This commit is contained in:
Yash Srivastav 2017-08-19 21:07:22 +05:30
parent fa021da7cf
commit 0e332ec19d
No known key found for this signature in database
GPG Key ID: 67A09FFAC003E189

View File

@ -71,9 +71,10 @@ $(function() {
search(term, callback) { search(term, callback) {
term = term.slice(1); term = term.slice(1);
if (term[0] === "@") { if (term[0] === "@") {
callback(completeNicks(term.slice(1)).map((val) => "@" + val)); callback(completeNicks(term.slice(1), true)
.map((val) => ["@" + val[0], "@" + val[1]]));
} else { } else {
callback(completeNicks(term)); callback(completeNicks(term, true));
} }
}, },
template([string, ]) { template([string, ]) {
@ -290,7 +291,7 @@ $(function() {
chat.find(".chan.active .chat").trigger("msg.sticky"); // fix growing chat.find(".chan.active .chat").trigger("msg.sticky"); // fix growing
}) })
.tab(tabCompleteNicks, {hint: false}) .tab((word) => completeNicks(word, false), {hint: false})
.on("autocomplete:on", function() { .on("autocomplete:on", function() {
enableAutocomplete(); enableAutocomplete();
}); });
@ -943,8 +944,9 @@ $(function() {
return results.map((el) => [el.string, el.original]); return results.map((el) => [el.string, el.original]);
} }
function tabCompleteNicks(word) { function completeNicks(word, isFuzzy) {
const users = chat.find(".active .users"); const users = chat.find(".active .users");
word = word.toLowerCase();
// Lobbies and private chats do not have an user list // Lobbies and private chats do not have an user list
if (!users.length) { if (!users.length) {
@ -952,26 +954,15 @@ $(function() {
} }
const words = users.data("nicks"); const words = users.data("nicks");
if (isFuzzy) {
return fuzzyGrep(word, words);
}
return $.grep( return $.grep(
words, words,
(w) => !w.toLowerCase().indexOf(word.toLowerCase()) (w) => !w.toLowerCase().indexOf(word)
); );
} }
function completeNicks(word) {
const users = chat.find(".active .users");
// Lobbies and private chats do not have an user list
if (!users.length) {
return [];
}
const words = users.data("nicks");
return fuzzyGrep(word, words);
}
function completeCommands(word) { function completeCommands(word) {
const words = constants.commands.slice(); const words = constants.commands.slice();