From d248bd6323f568e8380e25b6d951bab4416cdb69 Mon Sep 17 00:00:00 2001 From: Kevin McConnell Date: Wed, 29 Jan 2025 17:59:17 +0000 Subject: [PATCH] Clear Activity highlights on back navigation Also small refactor of the controller. --- .../controllers/related_element_controller.js | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/app/javascript/controllers/related_element_controller.js b/app/javascript/controllers/related_element_controller.js index 1beb9cb9e..34d0c1645 100644 --- a/app/javascript/controllers/related_element_controller.js +++ b/app/javascript/controllers/related_element_controller.js @@ -1,23 +1,24 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { - static targets = ["related"] - static classes = ["highlight"] - static values = { group: String } - - highlight(event) { - const groupValue = event.currentTarget.dataset.relatedElementGroupValue - - this.relatedTargets - .filter(element => element.dataset.relatedElementGroupValue === groupValue) - .forEach(element => element.classList.add(this.highlightClass)) + static targets = [ "related" ] + static classes = [ "highlight" ] + + connect() { + this.#highlight(null) } - unhighlight(event) { - const groupValue = event.currentTarget.dataset.relatedElementGroupValue - - this.relatedTargets - .filter(element => element.dataset.relatedElementGroupValue === groupValue) - .forEach(element => element.classList.remove(this.highlightClass)) + highlight(event) { + this.#highlight(event.currentTarget.dataset.relatedElementGroupValue) + } + + unhighlight() { + this.#highlight(null) + } + + #highlight(groupValue) { + this.relatedTargets.forEach(element => + element.classList.toggle(this.highlightClass, element.dataset.relatedElementGroupValue === groupValue) + ) } }