diff options
author | 2021-11-22 13:01:32 -0800 | |
---|---|---|
committer | 2021-11-22 15:01:32 -0600 | |
commit | ec01d1b43f069d909a18bfb73ee414f954d25c9a (patch) | |
tree | 4d72b2cba89772d1c16eb9624fcfa16e1251c554 /packages/renderers/renderer-lit/server.js | |
parent | c22e4c69ec3c544abda22d48526193c66351ccd9 (diff) | |
download | astro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.tar.gz astro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.tar.zst astro-ec01d1b43f069d909a18bfb73ee414f954d25c9a.zip |
fix(lit-renderer): certain reactive props not init correctly (#1874)
* fix(lit-renderer): reactive props not init correctly
* test(renderer-lit): implement testing suggestiosn
* chore(renderer-lit): upload changeset
* fix(renderer-lit): call connCallback on server
* fix(renderer-lit): do not set reserved JSX props
* fix(renderer-lit): do not check for reserved attributes
Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to 'packages/renderers/renderer-lit/server.js')
-rw-r--r-- | packages/renderers/renderer-lit/server.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/renderers/renderer-lit/server.js b/packages/renderers/renderer-lit/server.js index c827f1ad1..e08b2bf9a 100644 --- a/packages/renderers/renderer-lit/server.js +++ b/packages/renderers/renderer-lit/server.js @@ -28,10 +28,18 @@ function* render(tagName, attrs, children) { const instance = new LitElementRenderer(tagName); // LitElementRenderer creates a new element instance, so copy over. + const Ctr = getCustomElementConstructor(tagName); for (let [name, value] of Object.entries(attrs)) { - instance.setAttribute(name, value); + // check if this is a reactive property + if (name in Ctr.prototype) { + instance.setProperty(name, value); + } else { + instance.setAttribute(name, value); + } } + instance.connectedCallback(); + yield `<${tagName}`; yield* instance.renderAttributes(); yield `>`; |