From b76ff27b96f219af4a7850448dbcba311a5c20c8 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Mon, 3 Nov 2025 09:25:46 +0100 Subject: [PATCH 1/2] Keep the last search in place https://app.box-car.com/5986089/cards/2703 --- app/javascript/controllers/bar_controller.js | 29 ++++++++++---------- app/views/bar/_bar.html.erb | 2 +- app/views/searches/_form.html.erb | 5 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/javascript/controllers/bar_controller.js b/app/javascript/controllers/bar_controller.js index 0f995ae65..6b10a27b4 100644 --- a/app/javascript/controllers/bar_controller.js +++ b/app/javascript/controllers/bar_controller.js @@ -2,7 +2,7 @@ import { Controller } from "@hotwired/stimulus" import { post } from "@rails/request.js" export default class extends Controller { - static targets = [ "turboFrame", "searchInput", "buttonsContainer" ] + static targets = [ "turboFrame", "search", "searchInput", "form", "buttonsContainer" ] static outlets = [ "dialog" ] static values = { searchUrl: String, @@ -17,18 +17,13 @@ export default class extends Controller { this.dialogOutlet.close() this.#clearTurboFrame() - this.searchInputTarget.querySelector("input").value = "" this.#showItem(this.buttonsContainerTarget) - this.#hideItem(this.searchInputTarget) + this.#hideItem(this.searchTarget) } showModalAndSubmit(event) { - event.preventDefault() - - const form = event.target.closest("form") - this.showModal() - form.requestSubmit() + this.formTarget.requestSubmit() } showModal() { @@ -36,10 +31,18 @@ export default class extends Controller { } search(event) { - this.#openInTurboFrame(this.searchUrlValue) - - this.#showItem(this.searchInputTarget) + this.#showItem(this.searchTarget) this.#hideItem(this.buttonsContainerTarget) + + if (this.searchInputTarget.value.trim()) { + this.showModalAndSubmit() + } else { + this.#loadTurboFrame() + } + } + + #loadTurboFrame() { + this.turboFrameTarget.src = this.searchUrlValue } #clearTurboFrame() { @@ -47,10 +50,6 @@ export default class extends Controller { this.turboFrameTarget.innerHtml = "" } - #openInTurboFrame(url) { - this.turboFrameTarget.src = url - } - #showItem(element) { element.removeAttribute("hidden") diff --git a/app/views/bar/_bar.html.erb b/app/views/bar/_bar.html.erb index 4858ce2a8..095e7c0b2 100644 --- a/app/views/bar/_bar.html.erb +++ b/app/views/bar/_bar.html.erb @@ -7,7 +7,7 @@ <% end %> -