Skip to content

Commit

Permalink
should pass root as parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
pemrouz committed Jul 3, 2016
1 parent 6bbdfeb commit affad1d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
5 changes: 3 additions & 2 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,14 @@ var render = function render(ripple) {
var name = (0, _lo2.default)(el.tagName),
deps = (0, _attr2.default)(el, 'data'),
fn = body(ripple)(name),
data = bodies(ripple)(deps);
data = bodies(ripple)(deps),
root = el.shadowRoot || el;

if (!fn) return el;
if (deps && !data) return el;

try {
fn.call(el.shadowRoot || el, defaults(el, data), index(el));
fn.call(root, defaults(el, data), index(el), root);
} catch (e) {
err(e, e.stack);
}
Expand Down
5 changes: 3 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,13 @@ const render = ripple => el => {
, deps = attr(el, 'data')
, fn = body(ripple)(name)
, data = bodies(ripple)(deps)

, root = el.shadowRoot || el

if (!fn) return el
if (deps && !data) return el

try {
fn.call(el.shadowRoot || el, defaults(el, data), index(el))
fn.call(root, defaults(el, data), index(el), root)
} catch (e) {
err(e, e.stack)
}
Expand Down
17 changes: 17 additions & 0 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ var expect = require('chai').expect
, once = require('utilise/once')
, push = require('utilise/push')
, key = require('utilise/key')
, lo = require('utilise/lo')
, components = require('./').default
, core = require('rijs.core').default
, data = require('rijs.data').default
Expand Down Expand Up @@ -456,4 +457,20 @@ describe('Custom Elements', function(){
})
})

it('should pass root as parameter', function(done){
var elA = once(container)('component-29', 1).node()
, elB = once(container)('component-30', 1).node()
, ripple = components(fn(data(core())))
, result1, result2

Object.defineProperty(elB, 'shadowRoot', { value: elA })
ripple('component-29', function(d, i, el){ result1 = el })
ripple('component-30', function(d, i, el){ result2 = el })

time(40, function(){
expect(lo(result1.nodeName)).to.be.eql('component-29')
expect(lo(result2.nodeName)).to.be.eql('component-29')
done()
})
})
})

0 comments on commit affad1d

Please sign in to comment.