diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 80621407e..f2f224dd6 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -10,7 +10,9 @@ module FiltersHelper end def filter_button_tag(display:, value:, name:, **options) - tag.button id: filter_button_id(value, name), class: [ "btn txt-small btn--remove", options.delete(:class) ], data: { action: "filter-form#removeFilter form#submit" } do + tag.button id: filter_button_id(value, name), + class: [ "btn txt-small btn--remove", options.delete(:class) ], + data: { action: "filter-form#removeFilter form#submit", filter_form_target: "button" } do concat hidden_field_tag(name, value, id: nil) concat tag.span(display) concat image_tag("close.svg", aria: { hidden: true }, size: 24) diff --git a/app/javascript/controllers/filter_form_controller.js b/app/javascript/controllers/filter_form_controller.js index b55cc6069..65ac570a1 100644 --- a/app/javascript/controllers/filter_form_controller.js +++ b/app/javascript/controllers/filter_form_controller.js @@ -1,16 +1,27 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { + static targets = [ "button" ] + + connect() { + this.buttonTargets.forEach(button => this.#showButton(button)) + } + removeFilter(event) { event.preventDefault() - this.#removeButton(event.target.closest("button")) + this.#hideButton(event.target.closest("button")) } clearCategory({ params: { name } }) { - this.element.querySelectorAll(`input[name="${name}"]`).forEach(input => this.#removeButton(input.closest("button"))) + this.element.querySelectorAll(`input[name="${name}"]`).forEach(input => this.#hideButton(input.closest("button"))) } - #removeButton(button) { + #showButton(button) { + button.querySelector("input").disabled = false + button.hidden = false + } + + #hideButton(button) { button.querySelector("input").disabled = true button.hidden = true } diff --git a/app/views/bubbles/_filters.html.erb b/app/views/bubbles/_filters.html.erb index ebe553043..f5233e139 100644 --- a/app/views/bubbles/_filters.html.erb +++ b/app/views/bubbles/_filters.html.erb @@ -1,4 +1,4 @@ -