From 30f0079fc21f5962421748e4225a0995ebaf989c Mon Sep 17 00:00:00 2001 From: "Stanko K.R." Date: Tue, 19 Aug 2025 08:20:49 +0200 Subject: [PATCH] Extract isInput into a helper --- app/javascript/controllers/bar_controller.js | 4 ++-- app/javascript/controllers/hotkey_controller.js | 3 ++- app/javascript/helpers/html_helpers.js | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 app/javascript/helpers/html_helpers.js 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") +}