Skip to content

Commit

Permalink
link host/shadowroot data
Browse files Browse the repository at this point in the history
  • Loading branch information
pemrouz committed Nov 25, 2015
1 parent fe5618b commit 8d0c297
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function shadow(ripple) {
var render = ripple.render;

ripple.render = function (el) {
el.createShadowRoot ? !el.shadowRoot && el.createShadowRoot() && reflect(el) : (el.shadowRoot = el, el.shadowRoot.host = el);
el.createShadowRoot ? (!el.shadowRoot && el.createShadowRoot() && reflect(el), el.shadowRoot.__data__ = el.__data__) : (el.shadowRoot = el, el.shadowRoot.host = el);

return render(el);
};
Expand Down
5 changes: 3 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ export default function shadow(ripple){

ripple.render = function(el){
el.createShadowRoot
? (!el.shadowRoot && el.createShadowRoot() && reflect(el))
? (!el.shadowRoot && el.createShadowRoot() && reflect(el)
, el.shadowRoot.__data__ = el.__data__)
: ( el.shadowRoot = el
, el.shadowRoot.host = el)
, el.shadowRoot.host = el)

return render(el)
}
Expand Down
19 changes: 17 additions & 2 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ describe('Shadow DOM', function(){

ripple('component-1', component)
ripple('component-2', component)
ripple.draw()
ripple.render(el1)
ripple.render(el2)

expect(el1.shadowRoot.innerHTML).to.be.eql('foo')
expect(el1).to.be.equal(el1.shadowRoot.host)
Expand All @@ -42,9 +43,23 @@ describe('Shadow DOM', function(){
var ripple = shadow(components(fn(data(core()))))

ripple('component-2', noop)
ripple.draw()
ripple.render(el1)
ripple.render(el2)

expect(el2.shadowRoot.innerHTML).to.be.eql('fallback')
})

it('should close gap between host data and shadowRoot data', function(){
var ripple = shadow(components(fn(data(core()))))

ripple('component-2', noop)

el2.__data__ = { foo: 'bar' }

ripple.render(el1)
ripple.render(el2)

expect(el2.shadowRoot.__data__).to.be.eql(el2.__data__)
})

})

0 comments on commit 8d0c297

Please sign in to comment.