ember-daypicker
Version:
A simple daypicker addon for ember.js with zero external dependencies.
40 lines (32 loc) • 980 B
JavaScript
import Ember from 'ember';
const {
get,
run,
Logger: { warn },
Mixin
} = Ember
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1)
export default Mixin.create({
documentEvents: [],
didInsertElement () {
run.scheduleOnce('afterRender', () => {
get(this, 'documentEvents')
.forEach(event => {
const eventHandler = `onDocument${capitalize(event)}`
if (!this[eventHandler]) {
warn(`[document-event] You are tracking ${event}, but there is no handler. ${eventHandler} was not found`)
return
}
this[eventHandler] = this[eventHandler].bind(this)
window.addEventListener(event, this[eventHandler], true)
})
})
},
willDestroyElement () {
get(this, 'documentEvents')
.forEach(event => {
const eventHandler = `onDocument${capitalize(event)}`
window.removeEventListener(event, this[eventHandler], true)
})
}
});