Skip to content

Commit

Permalink
Merge pull request #75 from stevenle/shadowroot-closed
Browse files Browse the repository at this point in the history
  • Loading branch information
marvinhagemeister committed Aug 16, 2023
2 parents 8f5264a + 595903f commit 5c889f0
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export default function register(Component, tagName, propNames, options) {
const inst = Reflect.construct(HTMLElement, [], PreactElement);
inst._vdomComponent = Component;
inst._root =
options && options.shadow ? inst.attachShadow({ mode: 'open' }) : inst;
options && options.shadow ? inst.attachShadow({ mode: options.mode || 'open' }) : inst;
return inst;
}
PreactElement.prototype = Object.create(HTMLElement.prototype);
Expand Down
34 changes: 34 additions & 0 deletions src/index.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -245,4 +245,38 @@ describe('web components', () => {
});
assert.equal(getShadowHTML(), '<p>Active theme: sunny</p>');
});

it('renders element in shadow dom open mode', async () => {
function ShadowDomOpen() {
return <div className="shadow-child">Shadow DOM Open</div>;
}

registerElement(ShadowDomOpen, 'x-shadowdom-open', [], {
shadow: true,
mode: 'open',
});

const el = document.createElement('x-shadowdom-open');
root.appendChild(el);
const shadowRoot = el.shadowRoot;
assert.isTrue(!!shadowRoot);
const child = shadowRoot.querySelector('.shadow-child');
assert.isTrue(!!child);
assert.equal(child.textContent, 'Shadow DOM Open');
});

it('renders element in shadow dom closed mode', async () => {
function ShadowDomClosed() {
return <div className="shadow-child">Shadow DOM Closed</div>;
}

registerElement(ShadowDomClosed, 'x-shadowdom-closed', [], {
shadow: true,
mode: 'closed',
});

const el = document.createElement('x-shadowdom-closed');
root.appendChild(el);
assert.isTrue(el.shadowRoot === null);
});
});

0 comments on commit 5c889f0

Please sign in to comment.