From 05a0c4fd55acb37c92e69bcbb5f7d66369188f10 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Sat, 28 Feb 2026 18:09:51 +0100 Subject: [PATCH] Fix PackageCard memo comparator to include callback props Prevents stale closures when callback identities change but data props remain the same. Co-Authored-By: Claude Opus 4.6 --- src/renderer/App.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 359cbdd..8947a80 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -1292,6 +1292,20 @@ const PackageCard = memo(function PackageCard({ pkg, items, packageSpeed, isFirs if (prev.items.length !== next.items.length) { return false; } + if (prev.onCancel !== next.onCancel + || prev.onMoveUp !== next.onMoveUp + || prev.onMoveDown !== next.onMoveDown + || prev.onToggle !== next.onToggle + || prev.onRemoveItem !== next.onRemoveItem + || prev.onStartEdit !== next.onStartEdit + || prev.onFinishEdit !== next.onFinishEdit + || prev.onEditChange !== next.onEditChange + || prev.onToggleCollapse !== next.onToggleCollapse + || prev.onDragStart !== next.onDragStart + || prev.onDrop !== next.onDrop + || prev.onDragEnd !== next.onDragEnd) { + return false; + } for (let index = 0; index < prev.items.length; index += 1) { const a = prev.items[index]; const b = next.items[index];