mirror of https://github.com/sveltejs/svelte
parent
39ee7cf4c2
commit
59a379596c
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: `append_styles` in an effect to make them available on mount
|
@ -0,0 +1,21 @@
|
|||||||
|
import { test } from '../../assert';
|
||||||
|
const tick = () => Promise.resolve();
|
||||||
|
|
||||||
|
export default test({
|
||||||
|
async test({ assert, target }) {
|
||||||
|
target.innerHTML = '<custom-element></custom-element>';
|
||||||
|
/** @type {any} */
|
||||||
|
const el = target.querySelector('custom-element');
|
||||||
|
|
||||||
|
/** @type {string} */
|
||||||
|
let html = '';
|
||||||
|
const handle_evt = (e) => (html = e.detail);
|
||||||
|
el.addEventListener('html', handle_evt);
|
||||||
|
|
||||||
|
await tick();
|
||||||
|
await tick();
|
||||||
|
await tick();
|
||||||
|
|
||||||
|
assert.ok(html.includes('<style'));
|
||||||
|
}
|
||||||
|
});
|
@ -0,0 +1,16 @@
|
|||||||
|
<svelte:options css="injected" customElement="custom-element"/>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
$effect(() => {
|
||||||
|
$host().dispatchEvent(new CustomEvent("html", { detail: $host().shadowRoot?.innerHTML }));
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<button class="btn">btn</button>
|
||||||
|
|
||||||
|
<style >
|
||||||
|
.btn {
|
||||||
|
width: 123px;
|
||||||
|
height: 123px;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in new issue