From d43cd8559cbccbb1d79b809ec2652ead0ea5f4e6 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Mon, 8 Jan 2024 13:10:19 +0000 Subject: [PATCH] fix: apply key animations on proxed arrays --- .changeset/itchy-terms-guess.md | 5 +++++ packages/svelte/src/internal/client/each.js | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/itchy-terms-guess.md diff --git a/.changeset/itchy-terms-guess.md b/.changeset/itchy-terms-guess.md new file mode 100644 index 0000000000..833c1277b1 --- /dev/null +++ b/.changeset/itchy-terms-guess.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: apply key animations on proxed arrays diff --git a/packages/svelte/src/internal/client/each.js b/packages/svelte/src/internal/client/each.js index 8d9ef0e7c7..1305116e19 100644 --- a/packages/svelte/src/internal/client/each.js +++ b/packages/svelte/src/internal/client/each.js @@ -417,7 +417,8 @@ function reconcile_tracked_array( insert_each_item_block(block, dom, is_controlled, null); } } else { - var should_update_block = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0; + var is_animated = (flags & EACH_IS_ANIMATED) !== 0; + var should_update_block = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0 || is_animated; var start = 0; /** @type {null | Text | Element | Comment} */ @@ -500,7 +501,6 @@ function reconcile_tracked_array( mark_lis(sources); } // If keys are animated, we need to do updates before actual moves - var is_animated = (flags & EACH_IS_ANIMATED) !== 0; var should_create; if (is_animated) { var i = b_length;