// alpine component for displaying meetings
$XRFMEETING = $el(
`
`
)
window.XRFMEETING = {
scene: null,
enabled: false,
active: false,
init(){
window.XRFMEETING = this.$data // replace so we can modify state in global scope
window.meeting
},
toggle(){
this.enabled = !this.enabled
if( !this.active ) this.start()
},
install(opts){
this.scene = opts.scene
window.XRFMENU.buttons.push(`🧑🤝🧑 meeting
`)
document.body.appendChild( $XRFMEETING )
},
start(){
this.scene.addEventListener('meeting.peer.add', () => console.log("$meeting.peer.add") )
this.scene.addEventListener('meeting.peer.remove', () => console.log("$meeting.peer.remove") )
}
}
// finally we alpinify
document.addEventListener('XRFMENU:ready', (opts) => {
opts = opts.detail
Alpine.data('XRFMEETING', () => window.XRFMEETING)
XRFMEETING.install(opts)
})