Bladeren bron

Bugfix. Don't autocomplete MUC mentions without `@`

JC Brand 3 maanden geleden
bovenliggende
commit
cb6d2a1309

+ 6 - 4
src/plugins/muc-views/message-form.js

@@ -30,7 +30,7 @@ export default class MUCMessageForm extends MessageForm {
     }
 
     initMentionAutoComplete() {
-        this.mention_auto_complete = new AutoComplete(this, {
+        this.auto_complete = new AutoComplete(this, {
             auto_first: true,
             min_chars: api.settings.get("muc_mention_autocomplete_min_chars"),
             match_current_word: true,
@@ -41,7 +41,7 @@ export default class MUCMessageForm extends MessageForm {
             include_triggers: [],
             item: (text, input) => getAutoCompleteListItem(this.model, text, input),
         });
-        this.mention_auto_complete.on("suggestion-box-selectcomplete", () => (this.auto_completing = false));
+        this.auto_complete.on("suggestion-box-selectcomplete", () => (this.auto_completing = false));
     }
 
     getAutoCompleteList() {
@@ -52,7 +52,7 @@ export default class MUCMessageForm extends MessageForm {
      * @param {KeyboardEvent} ev
      */
     onKeyDown(ev) {
-        if (this.shouldAutoComplete() && this.mention_auto_complete.onKeyDown(ev)) {
+        if (this.shouldAutoComplete() && this.auto_complete.onKeyDown(ev)) {
             return;
         }
         super.onKeyDown(ev);
@@ -62,7 +62,9 @@ export default class MUCMessageForm extends MessageForm {
      * @param {KeyboardEvent} ev
      */
     onKeyUp(ev) {
-        if (this.shouldAutoComplete()) this.mention_auto_complete.evaluate(ev);
+        if (this.shouldAutoComplete() && this.auto_complete.auto_completing) {
+            this.auto_complete.evaluate(ev);
+        }
         super.onKeyUp(ev);
     }
 }

+ 1 - 1
src/shared/autocomplete/autocomplete.js

@@ -228,7 +228,7 @@ export class AutoComplete extends EventEmitter(Object) {
                 this.select();
                 return true;
             } else if (ev.key === converse.keycodes.ESCAPE) {
-                this.close({'reason': 'esc'});
+                this.close({ reason: 'esc' });
                 return true;
             } else if ([converse.keycodes.UP_ARROW, converse.keycodes.DOWN_ARROW].includes(ev.key)) {
                 ev.preventDefault();

+ 1 - 1
src/types/plugins/muc-views/message-form.d.ts

@@ -4,7 +4,7 @@ export default class MUCMessageForm extends MessageForm {
      */
     shouldAutoComplete(): boolean;
     initMentionAutoComplete(): void;
-    mention_auto_complete: AutoComplete;
+    auto_complete: AutoComplete;
     auto_completing: boolean;
     getAutoCompleteList(): any;
     /**