Skip to content

Commit

Permalink
Merge pull request #65 from bantic/bantic/64-glimmer2-rendering
Browse files Browse the repository at this point in the history
Use `getDOM` util to get dom reference in glimmer2
  • Loading branch information
lukemelia committed Sep 6, 2016
2 parents 8cdb374 + 3cdfe54 commit 95df99a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
7 changes: 3 additions & 4 deletions addon/components/ember-wormhole.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import Ember from 'ember';
import layout from '../templates/components/ember-wormhole';
import {
getActiveElement,
findElementById
findElementById,
getDOM
} from '../utils/dom';

const { Component, computed, observer, run } = Ember;
Expand Down Expand Up @@ -34,9 +35,7 @@ export default Component.extend({
init() {
this._super(...arguments);

// Private Ember API usage. Get the dom implementation used by the current
// renderer, be it native browser DOM or Fastboot SimpleDOM
this._dom = this.renderer._dom;
this._dom = getDOM(this);

// Create text nodes used for the head, tail
this._wormholeHeadNode = this._dom.document.createTextNode('');
Expand Down
14 changes: 13 additions & 1 deletion addon/utils/dom.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Implement some helpers methods for interacting with the DOM,
* be it Fastboot's SimpleDOM or a browser's version.
* be it Fastboot's SimpleDOM or the browser's version.
*/

export function getActiveElement() {
Expand Down Expand Up @@ -40,3 +40,15 @@ export function findElementById(doc, id) {
}
}

// Private Ember API usage. Get the dom implementation used by the current
// renderer, be it native browser DOM or Fastboot SimpleDOM
export function getDOM(context) {
let { renderer } = context;
if (renderer._dom) { // pre glimmer2
return renderer._dom;
} else if (renderer._env && renderer._env.getDOM) { // glimmer2
return renderer._env.getDOM();
} else {
throw new Error('ember-wormhole could not get DOM');
}
}

0 comments on commit 95df99a

Please sign in to comment.