Extract filtering for enabled targets so that the index of the targets is always the same for the bridge message callback

This commit is contained in:
Jay Ohms
2026-01-08 22:28:59 -05:00
parent 8cff72e0ba
commit 2e55f67d9b
2 changed files with 18 additions and 10 deletions
@@ -10,20 +10,24 @@ export default class extends BridgeComponent {
}
notifyBridgeOfConnect() {
const buttons = this.buttonTargets
.filter(target => !target.closest("[data-bridge-disabled]"))
const buttons = this.#enabledButtonTargets
.map((target, index) => {
const element = new BridgeElement(target)
return { ...element.getButton(), index }
})
this.send("connect", { buttons }, message => {
this.clickButton(message)
this.#clickButton(message)
})
}
clickButton(message) {
#clickButton(message) {
const selectedIndex = message.data.selectedIndex
this.buttonTargets[selectedIndex].click()
this.#enabledButtonTargets[selectedIndex].click()
}
get #enabledButtonTargets() {
return this.buttonTargets
.filter(target => !target.closest("[data-bridge-disabled]"))
}
}
@@ -10,20 +10,24 @@ export default class extends BridgeComponent {
}
notifyBridgeOfConnect() {
const items = this.itemTargets
.filter(target => !target.closest("[data-bridge-disabled]"))
const items = this.#enabledItemTargets
.map((target, index) => {
const element = new BridgeElement(target)
return { title: element.title, index }
})
this.send("connect", { items }, message => {
this.clickItem(message)
this.#clickItem(message)
})
}
clickItem(message) {
#clickItem(message) {
const selectedIndex = message.data.selectedIndex
this.itemTargets[selectedIndex].click()
this.#enabledItemTargets[selectedIndex].click()
}
get #enabledItemTargets() {
return this.itemTargets
.filter(target => !target.closest("[data-bridge-disabled]"))
}
}