rsvp-reader/components/rsvp-provider.js
2019-12-08 09:16:12 +01:00

24 lines
739 B
JavaScript

import { RSVPController } from '../src/RSVPController.js'
export class RSVPProvider extends HTMLElement {
constructor() {
super()
const shadow = this.attachShadow({ mode: 'open' })
const provider = document.createElement('state-provider')
const slot = document.createElement('slot')
provider.setAttribute('name', 'rsvp-controller')
provider.appendChild(slot)
shadow.appendChild(provider)
const controller = new RSVPController()
controller.onChange = this.provider.notifyObservers()
this.addEventListener('rsvp-event', function(e) {
let { action, payload } = e.detail
controller.handleAction(action, payload)
})
}
}
window.customElements.define('rsvp-provider', RSVPProvider)