From ec27d5033371c68f3facf6d9fe49761759a685a2 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Fri, 13 Jun 2025 23:46:53 -0700 Subject: [PATCH] [Manager] Fix selection state race condition during pack data merge (#4165) --- .../dialog/content/manager/ManagerDialogContent.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/dialog/content/manager/ManagerDialogContent.vue b/src/components/dialog/content/manager/ManagerDialogContent.vue index 5beb01eb2..8345a003d 100644 --- a/src/components/dialog/content/manager/ManagerDialogContent.vue +++ b/src/components/dialog/content/manager/ManagerDialogContent.vue @@ -430,7 +430,13 @@ whenever(selectedNodePack, async () => { if (data?.id === pack.id) { lastFetchedPackId.value = pack.id const mergedPack = merge({}, pack, data) - selectedNodePacks.value = [mergedPack] + // Update the pack in current selection without changing selection state + const packIndex = selectedNodePacks.value.findIndex( + (p) => p.id === mergedPack.id + ) + if (packIndex !== -1) { + selectedNodePacks.value.splice(packIndex, 1, mergedPack) + } // Replace pack in displayPacks so that children receive a fresh prop reference const idx = displayPacks.value.findIndex((p) => p.id === mergedPack.id) if (idx !== -1) {