diff --git a/packages/sts-like-viewer/src/state/inventory.ts b/packages/sts-like-viewer/src/state/inventory.ts index 3a95be8..393b6ec 100644 --- a/packages/sts-like-viewer/src/state/inventory.ts +++ b/packages/sts-like-viewer/src/state/inventory.ts @@ -10,6 +10,7 @@ import { Transform2D, validatePlacement, } from "boardgame-core/samples/slay-the-spire-like"; +import { batch } from "@preact/signals-core"; function genId() { return Math.random().toString(16).slice(-8); @@ -62,13 +63,15 @@ export function moveItem( const validation = validatePlacement(removed, item.shape, newTransform); if (!validation.valid) return false; - from.produce((inv) => { - removeItemFromGrid(inv, itemId); - }); - to.produce((inv) => { - placeItem(inv, { - ...item, - transform: newTransform, + batch(() => { + from.produce((inv) => { + removeItemFromGrid(inv, itemId); + }); + to.produce((inv) => { + placeItem(inv, { + ...item, + transform: newTransform, + }); }); });