Skip to content

Commit

Permalink
Add compatibility for Ember canary
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchlloyd committed Oct 11, 2016
1 parent 30f21b0 commit f134360
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 19 deletions.
18 changes: 8 additions & 10 deletions addon/components/ember-islands.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default Ember.Component.extend({
this.renderedComponents = this.componentsToRender.map(this.renderComponent);
},

didDestroyElement() {
willDestroyElement() {
this.renderedComponents.forEach((renderedComponent) => {
renderedComponent.destroy();
});
Expand All @@ -41,10 +41,13 @@ function getRenderComponentFor(emberObject) {
let owner = getOwner(emberObject);

return function renderComponent({ name, attrs, element }) {
let component = lookupComponent(owner, name);
let { component, layout } = lookupComponent(owner, name);
assert(`ember-islands could not find a component named "${name}" in your Ember appliction.`, component);

// Work around for #replaceIn bug
if (layout) {
attrs.layout = layout;
}

$(element).empty();
let componentInstance = component.create(attrs);
componentInstance.appendTo(element);
Expand All @@ -67,18 +70,13 @@ function queryIslandComponents() {
function lookupComponent(owner, name) {
let componentLookupKey = `component:${name}`;
let layoutLookupKey = `template:components/${name}`;
let layout = owner.lookup(layoutLookupKey);

if (layout) {
owner.inject(componentLookupKey, 'layout', layoutLookupKey);
}

let layout = owner._lookupFactory(layoutLookupKey);
let component = owner._lookupFactory(componentLookupKey);

if (layout && !component) {
owner.register(componentLookupKey, Component);
component = owner._lookupFactory(componentLookupKey);
}

return component;
return { component, layout };
}
18 changes: 9 additions & 9 deletions config/ember-try.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ module.exports = {
"ember": "~2.7.0"
}
},
// {
// name: 'ember-canary',
// dependencies: {
// "ember": "components/ember#canary"
// },
// resolutions: {
// "ember": "canary"
// }
// }
{
name: 'ember-canary',
dependencies: {
"ember": "components/ember#canary"
},
resolutions: {
"ember": "canary"
}
}
]
};

0 comments on commit f134360

Please sign in to comment.