Skip to content

Commit b0588d7

Browse files
authored
fix: address intro transition bugs (#9528)
* fix: address intro transition bugs * fix: address intro transition bugs
1 parent 298da65 commit b0588d7

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

.changeset/odd-needles-joke.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: address intro transition bugs

packages/svelte/src/internal/client/render.js

+2
Original file line numberDiff line numberDiff line change
@@ -1399,6 +1399,7 @@ function if_block(anchor_node, condition_fn, consequent_fn, alternate_fn) {
13991399
block.current = result;
14001400
if (has_mounted) {
14011401
if (result) {
1402+
remove_in_transitions(alternate_transitions);
14021403
if (alternate_transitions.size === 0) {
14031404
execute_effect(alternate_effect);
14041405
} else {
@@ -1410,6 +1411,7 @@ function if_block(anchor_node, condition_fn, consequent_fn, alternate_fn) {
14101411
trigger_transitions(consequent_transitions, 'in');
14111412
}
14121413
} else {
1414+
remove_in_transitions(consequent_transitions);
14131415
if (consequent_transitions.size === 0) {
14141416
execute_effect(consequent_effect);
14151417
} else {

packages/svelte/src/internal/client/transitions.js

-4
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,6 @@ export function bind_transition(dom, transition_fn, props_fn, direction, global)
485485
}
486486
if (
487487
parent === null ||
488-
is_intro ||
489488
(!global &&
490489
(transition_block.type !== IF_BLOCK || parent.type !== IF_BLOCK || parent.current))
491490
) {
@@ -530,9 +529,6 @@ export function trigger_transitions(transitions, target_direction, from) {
530529
const direction = transition.direction;
531530
if (target_direction === 'in') {
532531
if (direction === 'in' || direction === 'both') {
533-
if (direction === 'in') {
534-
transition.cancel();
535-
}
536532
transition.in();
537533
} else {
538534
transition.cancel();

packages/svelte/tests/runtime-legacy/samples/transition-js-each-block-intro-outro/_config.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ export default test({
3535
component.visible = true;
3636

3737
raf.tick(100);
38-
assert.equal(divs[0].foo, 0.3);
39-
assert.equal(divs[1].foo, 0.3);
40-
assert.equal(divs[2].foo, 0.3);
38+
assert.equal(divs[0].foo, 1);
39+
assert.equal(divs[1].foo, 1);
40+
assert.equal(divs[2].foo, 1);
4141

4242
assert.equal(divs[0].bar, 1);
4343
assert.equal(divs[1].bar, 1);

packages/svelte/tests/runtime-legacy/samples/transition-js-if-else-block-intro/_config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default test({
1414

1515
raf.tick(500);
1616
component.x = true;
17-
assert.equal(component.no, target.querySelector('div'));
17+
assert.equal(component.no, null);
1818
assert.equal(component.yes.foo, undefined);
1919

2020
raf.tick(700);

0 commit comments

Comments
 (0)