Files
fizzy/app/javascript/controllers/reaction_delete_controller.js
T
2025-11-17 17:00:58 +00:00

37 lines
937 B
JavaScript

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static classes = [ "deleteable", "reveal", "perform" ]
static targets = [ "button", "content" ]
static values = { reacterId: String }
connect() {
if (this.#currentUserIsReacter) {
this.#setAccessibleAttributes()
}
}
reveal() {
if (this.#currentUserIsReacter) {
this.element.classList.toggle(this.revealClass)
this.contentTarget.ariaExpanded = this.element.classList.contains(this.revealClass)
this.buttonTarget.focus()
}
}
perform() {
this.element.classList.add(this.performClass)
}
#setAccessibleAttributes() {
this.contentTarget.role = "button"
this.contentTarget.tabIndex = 0
this.contentTarget.ariaExpanded = false
this.element.classList.add(this.deleteableClass)
}
get #currentUserIsReacter() {
return Current.user.id === this.reacterIdValue
}
}