From 08bea8490d40dd37d6bff571fd3d6af91d610d75 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Fri, 9 Jan 2026 18:58:24 +0100 Subject: [PATCH] fix: TypeScript errors in sync version state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixed variable scope issue with totalMerged counter - Added syncVersion to return type declaration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/automerge/useAutomergeSyncRepo.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/automerge/useAutomergeSyncRepo.ts b/src/automerge/useAutomergeSyncRepo.ts index 781de22..c123aa3 100644 --- a/src/automerge/useAutomergeSyncRepo.ts +++ b/src/automerge/useAutomergeSyncRepo.ts @@ -117,6 +117,7 @@ export function useAutomergeSync(config: AutomergeSyncConfig): TLStoreWithStatus presence: ReturnType; connectionState: ConnectionState; isNetworkOnline: boolean; + syncVersion: number; } { const { uri, user } = config @@ -486,6 +487,9 @@ export function useAutomergeSync(config: AutomergeSyncConfig): TLStoreWithStatus // 3. Otherwise, only add server records that don't exist locally // (preserve offline changes, let Automerge CRDT sync handle conflicts) if (serverDoc.store && serverRecordCount > 0) { + // Track if we merged any data (needed outside the change callback) + let totalMerged = 0 + handle.change((doc: any) => { // Initialize store if it doesn't exist if (!doc.store) { @@ -534,6 +538,7 @@ export function useAutomergeSync(config: AutomergeSyncConfig): TLStoreWithStatus } }) + totalMerged = addedFromServer + replacedFromServer console.log(`🔄 Server sync: added=${addedFromServer}, replaced=${replacedFromServer}, skipped=${skippedExisting}, shouldPreferServer=${shouldPreferServer}`) }) @@ -542,8 +547,8 @@ export function useAutomergeSync(config: AutomergeSyncConfig): TLStoreWithStatus // CRITICAL: Force React to re-render after merging server data // The handle object reference doesn't change, so we increment syncVersion - if ((addedFromServer > 0 || replacedFromServer > 0) && mounted) { - console.log(`🔄 Forcing UI update after server sync (${addedFromServer + replacedFromServer} records merged)`) + if (totalMerged > 0 && mounted) { + console.log(`🔄 Forcing UI update after server sync (${totalMerged} records merged)`) // Increment sync version to trigger React re-render setSyncVersion(v => v + 1) }