From 3ebfde5ea25472ff537ca9f2cc4d8b2ed72e76f1 Mon Sep 17 00:00:00 2001 From: Isaac Janzen <50783505+janzenisaac@users.noreply.github.com> Date: Thu, 9 Jun 2022 14:59:33 -0500 Subject: [PATCH] DEV: Remove jquery from create-account modal (#16983) --- .../app/components/create-account.js | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/discourse/app/components/create-account.js b/app/assets/javascripts/discourse/app/components/create-account.js index f61d76b8e8..a56b945bc0 100644 --- a/app/assets/javascripts/discourse/app/components/create-account.js +++ b/app/assets/javascripts/discourse/app/components/create-account.js @@ -21,6 +21,23 @@ export default Component.extend({ } }, + actionOnEnter(event) { + if (!this.disabled && event.key === "Enter") { + event.preventDefault(); + event.stopPropagation(); + this.action(); + return false; + } + }, + + selectKitFocus(event) { + const target = document.getElementById(event.target.getAttribute("for")); + if (target?.classList.contains("select-kit")) { + event.preventDefault(); + target.querySelector(".select-kit-header").click(); + } + }, + didInsertElement() { this._super(...arguments); @@ -43,31 +60,15 @@ export default Component.extend({ } } - $(this.element).on("keydown.discourse-create-account", (e) => { - if (!this.disabled && e.key === "Enter") { - e.preventDefault(); - e.stopPropagation(); - this.action(); - return false; - } - }); - - $(this.element).on("click.dropdown-user-field-label", "[for]", (event) => { - const $element = $(event.target); - const $target = $(`#${$element.attr("for")}`); - - if ($target.is(".select-kit")) { - event.preventDefault(); - $target.find(".select-kit-header").trigger("click"); - } - }); + this.element.addEventListener("keydown", this.actionOnEnter); + this.element.addEventListener("click", this.selectKitFocus); }, willDestroyElement() { this._super(...arguments); - $(this.element).off("keydown.discourse-create-account"); - $(this.element).off("click.dropdown-user-field-label"); + this.element.removeEventListener("keydown", this.actionOnEnter); + this.element.removeEventListener("click", this.selectKitFocus); let userTextFields = document.getElementsByClassName("user-fields")[0];