diff --git a/app/javascript/controllers/bar_controller.js b/app/javascript/controllers/bar_controller.js index dd4f4ae14..7199e6898 100644 --- a/app/javascript/controllers/bar_controller.js +++ b/app/javascript/controllers/bar_controller.js @@ -1,5 +1,6 @@ import { Controller } from "@hotwired/stimulus" import { post } from "@rails/request.js" +import { isInput } from "helpers/html_helpers" export default class extends Controller { static targets = [ "turboFrame" ] @@ -41,8 +42,7 @@ export default class extends Controller { const activeElement = document.activeElement if (activeElement) { - const usingInput = activeElement.closest("input, textarea, lexical-editor") - return !usingInput + return !isInput(activeElement) } else { return true } diff --git a/app/javascript/controllers/hotkey_controller.js b/app/javascript/controllers/hotkey_controller.js index 1c85d69e8..6abfc45c0 100644 --- a/app/javascript/controllers/hotkey_controller.js +++ b/app/javascript/controllers/hotkey_controller.js @@ -1,4 +1,5 @@ import { Controller } from "@hotwired/stimulus" +import { isInput } from "helpers/html_helpers" export default class extends Controller { click(event) { @@ -9,7 +10,7 @@ export default class extends Controller { } #shouldIgnore(event) { - return event.defaultPrevented || event.target.closest("input, textarea, lexical-editor") + return event.defaultPrevented || isInput(event.target) } get #isClickable() { diff --git a/app/javascript/helpers/html_helpers.js b/app/javascript/helpers/html_helpers.js new file mode 100644 index 000000000..5b4a4185b --- /dev/null +++ b/app/javascript/helpers/html_helpers.js @@ -0,0 +1,3 @@ +export function isInput(element) { + return !!element.closest("input, textarea, lexical-editor") +}