Skip to content

Commit

Permalink
Merge pull request #15078 from habdelra/14754-deprecate-canDispatchTo…
Browse files Browse the repository at this point in the history
…EventManager

[DEPRECATION] #14754 deprecate `canDispatchToEventManager`
  • Loading branch information
rwjblue authored Apr 3, 2017
2 parents 9995152 + 6810123 commit 77078af
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 2 deletions.
27 changes: 27 additions & 0 deletions packages/ember-glimmer/tests/integration/event-dispatcher-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
run
} from 'ember-metal';
import { EMBER_IMPROVED_INSTRUMENTATION } from 'ember/features';
import { EventDispatcher } from 'ember-views';

let canDataTransfer = !!document.createEvent('HTMLEvents').dataTransfer;

Expand Down Expand Up @@ -55,6 +56,8 @@ moduleFor('EventDispatcher', class extends RenderingTest {
template: `<input id="is-done" type="checkbox">`
});


expectDeprecation(/`eventManager` has been deprecated/);
this.render(`{{x-foo}}`);

this.runTask(() => this.$('#is-done').trigger('click'));
Expand Down Expand Up @@ -89,6 +92,7 @@ moduleFor('EventDispatcher', class extends RenderingTest {
template: `<input id="is-done" type="checkbox">`
});

expectDeprecation(/`eventManager` has been deprecated/);
this.render(`{{x-foo}}`);

this.runTask(() => this.$('#is-done').trigger('click'));
Expand Down Expand Up @@ -138,6 +142,29 @@ moduleFor('EventDispatcher#setup', class extends RenderingTest {
this.$('div').trigger('myevent');
}

['@test eventManager is deprecated'](assert) {
this.registerComponent('x-foo', {
ComponentClass: Component.extend({
eventManager: {
myEvent() {}
}
}),
template: `<p>Hello!</p>`
});

expectDeprecation(/`eventManager` has been deprecated/);
this.render(`{{x-foo}}`);
}

['@test canDispatchToEventManager is deprecated in EventDispatcher'](assert) {
let MyDispatcher = EventDispatcher.extend({
canDispatchToEventManager: null
});

expectDeprecation(/`canDispatchToEventManager` has been deprecated/);
MyDispatcher.create();
}

['@test a rootElement can be specified'](assert) {
this.$().append('<div id="app"></div>');
this.dispatcher.setup({ myevent: 'myEvent' }, '#app');
Expand Down
11 changes: 10 additions & 1 deletion packages/ember-views/lib/mixins/view_support.js
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,16 @@ export default Mixin.create({
let owner = getOwner(this);
let dispatcher = owner && owner.lookup('event_dispatcher:main');

if (dispatcher && dispatcher.canDispatchToEventManager === null) {
deprecate(
`\`eventManager\` has been deprecated in ${this}.`,
false,
{
id: 'ember-views.event-dispatcher.canDispatchToEventManager',
until: '2.16.0'
}
);

if (dispatcher && !('canDispatchToEventManager' in dispatcher)) {
dispatcher.canDispatchToEventManager = true;
}
}
Expand Down
12 changes: 11 additions & 1 deletion packages/ember-views/lib/system/event_dispatcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import { assign, getOwner } from 'ember-utils';
import { assert } from 'ember-debug';
import { get, set, isNone, run } from 'ember-metal';
import { deprecate } from 'ember-debug';
import { Object as EmberObject } from 'ember-runtime';
import jQuery from './jquery';
import ActionManager from './action_manager';
Expand Down Expand Up @@ -129,13 +130,22 @@ export default EmberObject.extend({
@type boolean
@default false
@since 1.7.0
@deprecated
@private
*/
canDispatchToEventManager: null,

init() {
this._super();
assert('EventDispatcher should never be instantiated in fastboot mode. Please report this as an Ember bug.', environment.hasDOM);

deprecate(
`\`canDispatchToEventManager\` has been deprecated in ${this}.`,
!('canDispatchToEventManager' in this),
{
id: 'ember-views.event-dispatcher.canDispatchToEventManager',
until: '2.16.0'
}
);
},

/**
Expand Down

0 comments on commit 77078af

Please sign in to comment.