From e7fd1e400626a575e13855e8e1747767478af53a Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 23 Sep 2026 17:00:17 +0300 Subject: [PATCH] fix search button --- app/javascript/elements/search_input.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/javascript/elements/search_input.js b/app/javascript/elements/search_input.js index 7ef784e2c..7a5fa2132 100644 --- a/app/javascript/elements/search_input.js +++ b/app/javascript/elements/search_input.js @@ -1,16 +1,10 @@ export default class extends HTMLElement { connectedCallback () { - this.button.addEventListener('click', (event) => { - if (!this.input.value && document.activeElement !== this.input) { - event.preventDefault() - - this.input.focus() - } - }) + this.addEventListener('click', this.onClick) document.addEventListener('turbo:before-cache', this.onBeforeCache) - if (this.input.value) { + if (this.input?.value) { this.input.focus() this.input.setSelectionRange(this.input.value.length, this.input.value.length) } @@ -20,6 +14,16 @@ export default class extends HTMLElement { document.removeEventListener('turbo:before-cache', this.onBeforeCache) } + onClick = (event) => { + if (!event.target.closest('button')) return + + if (!this.input.value && document.activeElement !== this.input) { + event.preventDefault() + + this.input.focus() + } + } + onBeforeCache = () => { this.input.value = this.input.getAttribute('value') || '' }