diff --git a/src/hooks/useNetworkedState.js b/src/hooks/useNetworkedState.js index 7dbf356..99ef54d 100644 --- a/src/hooks/useNetworkedState.js +++ b/src/hooks/useNetworkedState.js @@ -1,4 +1,5 @@ import { useEffect, useState, useRef, useCallback } from "react"; +import cloneDeep from "lodash.clonedeep"; import useDebounce from "./useDebounce"; import { diff, applyChanges } from "../helpers/diff"; @@ -70,7 +71,7 @@ function useNetworkedState( } dirtyRef.current = false; forceUpdateRef.current = false; - lastSyncedStateRef.current = debouncedState; + lastSyncedStateRef.current = cloneDeep(debouncedState); } }, [ session.socket, diff --git a/src/network/NetworkedMapAndTokens.js b/src/network/NetworkedMapAndTokens.js index 1e209b9..6c258d1 100644 --- a/src/network/NetworkedMapAndTokens.js +++ b/src/network/NetworkedMapAndTokens.js @@ -91,15 +91,15 @@ function NetworkedMapAndTokens({ session }) { function addAssetsIfNeeded(assets) { setAssetManifest((prevManifest) => { if (prevManifest?.assets) { - let newManifset = { ...prevManifest }; + let newAssets = { ...prevManifest.assets }; for (let asset of assets) { const id = asset.id; - const exists = id in prevManifest.assets; + const exists = id in newAssets; if (!exists) { - newManifset[id] = asset; + newAssets[id] = asset; } } - return newManifset; + return { ...prevManifest, assets: newAssets }; } return prevManifest; });