mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-04-17 09:41:51 +09:00
Hello world
First open source release of Campfire 🎉
This commit is contained in:
33
app/javascript/controllers/boost_delete_controller.js
Normal file
33
app/javascript/controllers/boost_delete_controller.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
static classes = [ "reveal", "perform" ]
|
||||
static targets = [ "button", "content" ]
|
||||
static values = { boosterId: Number }
|
||||
|
||||
connect() {
|
||||
if (this.#currentUserIsBooster) {
|
||||
this.#setAccessibleAttributes()
|
||||
}
|
||||
}
|
||||
|
||||
reveal() {
|
||||
if (this.#currentUserIsBooster) {
|
||||
this.element.classList.toggle(this.revealClass)
|
||||
this.buttonTarget.focus()
|
||||
}
|
||||
}
|
||||
|
||||
perform() {
|
||||
this.element.classList.add(this.performClass)
|
||||
}
|
||||
|
||||
#setAccessibleAttributes() {
|
||||
this.contentTarget.setAttribute('tabindex', '0')
|
||||
this.contentTarget.setAttribute('aria-describedby', 'delete_boost_accessible_label')
|
||||
}
|
||||
|
||||
get #currentUserIsBooster() {
|
||||
return Current.user.id === this.boosterIdValue
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user