From 5d0ce2ffb5d3fe33f65fab5a727af01beadc4dfe Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Mon, 8 Jan 2024 16:13:29 +0000 Subject: [PATCH] fix: allow transition undefined payload --- packages/svelte/src/internal/client/transitions.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/internal/client/transitions.js b/packages/svelte/src/internal/client/transitions.js index 38225d0346..5892a303fb 100644 --- a/packages/svelte/src/internal/client/transitions.js +++ b/packages/svelte/src/internal/client/transitions.js @@ -279,6 +279,9 @@ function create_transition(dom, init, direction, effect) { // @ts-ignore payload = payload({ direction: curr_direction }); } + if (payload == null) { + return; + } const duration = payload.duration ?? 300; const delay = payload.delay ?? 0; const css_fn = payload.css; @@ -485,13 +488,17 @@ export function bind_transition(dom, get_transition_fn, props_fn, direction, glo const show_intro = !can_show_intro_on_mount && (is_intro || direction === 'both'); if (show_intro) { - transition.p = transition.i(); + transition.p = transition.i() || null; } const effect = managed_pre_effect(() => { destroy_signal(effect); dom.inert = false; + if (transition.p === null) { + return; + } + if (show_intro) { transition.in(); } @@ -671,7 +678,7 @@ function each_item_animate(block, transitions, index, index_is_reactive) { transition.c(); } } - schedule_task(() => { + queueMicrotask(() => { trigger_transitions(transitions, 'key', from); }); }