From 7d270b394f7abaf88024aff8cd7dc9d73da8dd5a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 26 Aug 2024 21:59:34 -0400 Subject: [PATCH] never abort bidirectional transitions --- .../src/internal/client/dom/elements/transitions.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/elements/transitions.js b/packages/svelte/src/internal/client/dom/elements/transitions.js index 9d20a413de..768cdb8d86 100644 --- a/packages/svelte/src/internal/client/dom/elements/transitions.js +++ b/packages/svelte/src/internal/client/dom/elements/transitions.js @@ -204,8 +204,11 @@ export function transition(flags, element, get_fn, get_params) { return; } - // abort previous intro (can happen if an element is intro'd, then outro'd, then intro'd again) - intro?.abort(); + if (!is_outro) { + // if we intro then outro then intro again, we want to abort the first intro, + // if it's not a bidirectional transition + intro?.abort(); + } intro = animate(element, get_options(), outro, 1, () => { dispatch_event(element, 'introend'); @@ -226,9 +229,6 @@ export function transition(flags, element, get_fn, get_params) { element.inert = true; - // abort previous outro (can happen if an element is outro'd, then intro'd, then outro'd again) - outro?.abort(); - outro = animate(element, get_options(), intro, 0, () => { dispatch_event(element, 'outroend'); fn?.();