Skip to content

Commit 3f97558

Browse files
authored
Merge pull request #2409 from sveltejs/gh-2354
only create fallback content if no slot is provided
2 parents 1de67e3 + d67ffcd commit 3f97558

File tree

6 files changed

+29
-1
lines changed

6 files changed

+29
-1
lines changed

src/compile/render-dom/wrappers/Slot.ts

+2
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ export default class SlotWrapper extends Wrapper {
106106
let mount_before = block.builders.mount.toString();
107107

108108
block.builders.create.push_condition(`!${slot}`);
109+
block.builders.claim.push_condition(`!${slot}`);
109110
block.builders.hydrate.push_condition(`!${slot}`);
110111
block.builders.mount.push_condition(`!${slot}`);
111112
block.builders.update.push_condition(`!${slot}`);
@@ -118,6 +119,7 @@ export default class SlotWrapper extends Wrapper {
118119
block.event_listeners = listeners;
119120

120121
block.builders.create.pop_condition();
122+
block.builders.claim.pop_condition();
121123
block.builders.hydrate.pop_condition();
122124
block.builders.mount.pop_condition();
123125
block.builders.update.pop_condition();

test/hydration/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ describe('hydration', () => {
8080
if (config.test) {
8181
config.test(assert, target, snapshot, component, window);
8282
} else {
83-
component.destroy();
83+
component.$destroy();
8484
assert.equal(target.innerHTML, '');
8585
}
8686
} catch (err) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<div>
2+
<slot name="foo">
3+
foo fallback
4+
</slot>
5+
6+
<slot></slot>
7+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div>
2+
<div slot="foo">foo override</div>
3+
default
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div>
2+
<div slot="foo">foo override</div>
3+
default
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<script>
2+
import Nested from './Nested.svelte'
3+
</script>
4+
5+
<Nested>
6+
<div slot="foo">
7+
foo override
8+
</div>
9+
10+
default
11+
</Nested>

0 commit comments

Comments
 (0)