diff --git a/app/frontend/javascript/controllers/collection_controller.js b/app/frontend/javascript/controllers/collection_controller.js index 3335ca5dd..d2e6f2dd3 100644 --- a/app/frontend/javascript/controllers/collection_controller.js +++ b/app/frontend/javascript/controllers/collection_controller.js @@ -1,8 +1,8 @@ -import { Controller } from "@hotwired/stimulus" +import { Controller } from "@hotwired/stimulus"; // Connects to data-controller="collection" export default class extends Controller { -static classes = [ "unselected", "selected" ] + static classes = ["unselected", "selected"]; connect() { this.element.addEventListener("change", (event) => { const { type } = event.target; @@ -22,34 +22,43 @@ static classes = [ "unselected", "selected" ] }); this.element.addEventListener("input", (event) => { if (event.target.type === "text") { - this.debouncedSubmit() + this.debouncedSubmit(); } - }) + }); } submitForm() { - this.element.requestSubmit() + this.blurOldResults(); + this.element.requestSubmit(); } debouncedSubmit() { - clearTimeout(this.timeout) + clearTimeout(this.timeout); this.timeout = setTimeout(() => { - this.submitForm() - }, 400) + this.submitForm(); + }, 400); } toggleClass(el) { - const button = el.closest("label") - if (!button || !this.selectedClasses) return + const button = el.closest("label"); + if (!button || !this.selectedClasses) return; // Toggle selected classes - this.selectedClasses.forEach(cls => { - button.classList.toggle(cls) - }) + this.selectedClasses.forEach((cls) => { + button.classList.toggle(cls); + }); // Toggle unselected classes - this.unselectedClasses.forEach(cls => { - button.classList.toggle(cls) - }) + this.unselectedClasses.forEach((cls) => { + button.classList.toggle(cls); + }); + } + + blurOldResults() { + const elements = document.querySelectorAll(".blur-on-submit"); + + elements.forEach((el) => { + el.classList.add("blur-sm"); + }); } } diff --git a/app/views/resources/resource_results.html.erb b/app/views/resources/resource_results.html.erb index 5ed87d582..51f975646 100644 --- a/app/views/resources/resource_results.html.erb +++ b/app/views/resources/resource_results.html.erb @@ -1,8 +1,9 @@ <%= turbo_frame_tag :resource_results do %> <%= turbo_stream.replace("resource_count", partial: "resource_count") %> <%= turbo_stream.replace("copy_url", partial: "shared/copy_url") %> + <% if @resources.any? %> -
+
<% @resources.each do |resource| %> <%= render "resource_card", resource: resource.decorate %> <% end %> diff --git a/app/views/workshops/workshop_results.html.erb b/app/views/workshops/workshop_results.html.erb index 35bc4515a..d384ac4bd 100644 --- a/app/views/workshops/workshop_results.html.erb +++ b/app/views/workshops/workshop_results.html.erb @@ -7,7 +7,7 @@
<% if @workshops.any? %> -
+
<% @workshops.each do |workshop| %> <%= render "workshops/index_row", workshop: workshop.decorate, breadcrumb: "Workshops", link_route: workshop_path(workshop) %>