Files
fizzy/app/javascript/controllers/bridge/overflow_menu_controller.js
T

30 lines
796 B
JavaScript

import { BridgeComponent } from "@hotwired/hotwire-native-bridge"
import { BridgeElement } from "@hotwired/hotwire-native-bridge"
export default class extends BridgeComponent {
static component = "overflow-menu"
static targets = [ "item" ]
itemTargetConnected() {
this.notifyBridgeOfConnect()
}
notifyBridgeOfConnect() {
const items = this.itemTargets
.filter(target => !target.closest("[data-bridge-disabled]"))
.map((target, index) => {
const element = new BridgeElement(target)
return { title: element.title, index }
})
this.send("connect", { items }, message => {
this.clickItem(message)
})
}
clickItem(message) {
const selectedIndex = message.data.selectedIndex
this.itemTargets[selectedIndex].click()
}
}