diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 2434df901..13413280b 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -1,7 +1,6 @@ module FiltersHelper - def filter_chip_tag(text, name:, value:) - tag.button class: "btn txt-small btn--remove", data: { action: "filter-form#removeFilter form#submit", filter_form_target: "chip" } do - concat hidden_field_tag(name, value, id: nil) + def filter_chip_tag(text, params) + link_to bubbles_path(params), class: "btn txt-small btn--remove" do concat tag.span(text) concat image_tag("close.svg", aria: { hidden: true }, size: 24) end diff --git a/app/javascript/controllers/filter_form_controller.js b/app/javascript/controllers/filter_form_controller.js index 3e54f5837..30610f450 100644 --- a/app/javascript/controllers/filter_form_controller.js +++ b/app/javascript/controllers/filter_form_controller.js @@ -1,17 +1,6 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { - static targets = [ "chip" ] - - connect() { - this.chipTargets.forEach(button => this.#showChip(button)) - } - - removeFilter(event) { - event.preventDefault() - this.#hideChip(event.target.closest("button")) - } - clearCategory({ params: { name } }) { name.split(",").forEach(name => { this.element.querySelectorAll(`input[name="${name}"]`).forEach(input => { @@ -19,14 +8,4 @@ export default class extends Controller { }) }) } - - #showChip(button) { - button.querySelector("input").disabled = false - button.hidden = false - } - - #hideChip(button) { - button.querySelector("input").disabled = true - button.hidden = true - } } diff --git a/app/models/filter/params.rb b/app/models/filter/params.rb index 71be9eb85..8938840eb 100644 --- a/app/models/filter/params.rb +++ b/app/models/filter/params.rb @@ -24,4 +24,11 @@ module Filter::Params params[:filter_id] = id if persisted? end end + + def params_without(key, value) + to_params.tap do |params| + params[key].delete(value) if params[key].is_a?(Array) + params.delete(key) if params[key] == value + end + end end diff --git a/app/views/bubbles/_filters.html.erb b/app/views/bubbles/_filters.html.erb index e03c698bf..36528da16 100644 --- a/app/views/bubbles/_filters.html.erb +++ b/app/views/bubbles/_filters.html.erb @@ -1,7 +1,13 @@