From 0c042ac89fc0822fcbe09c48702857faa5494ae1 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 7 Dec 2025 23:34:03 +0900 Subject: feat(client): add sync status indicator component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add SyncStatusIndicator component to display current sync state in the UI header. The component shows online/offline status, syncing progress, pending changes count, and sync errors. - Create SyncProvider context to wrap SyncManager for React components - Add SyncStatusIndicator component with visual status indicators - Integrate indicator into HomePage header - Add comprehensive tests for SyncStatusIndicator and SyncProvider - Update existing tests to include SyncProvider wrapper 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/sync/queue.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/client/sync/queue.test.ts') diff --git a/src/client/sync/queue.test.ts b/src/client/sync/queue.test.ts index d35ae32..f6a3019 100644 --- a/src/client/sync/queue.test.ts +++ b/src/client/sync/queue.test.ts @@ -230,13 +230,17 @@ describe("SyncQueue", () => { const state = await syncQueue.getState(); expect(state.lastSyncAt).not.toBeNull(); - expect(state.lastSyncAt?.getTime()).toBeGreaterThanOrEqual(before.getTime()); + expect(state.lastSyncAt?.getTime()).toBeGreaterThanOrEqual( + before.getTime(), + ); }); it("should persist state to localStorage", async () => { await syncQueue.completeSync(10); - const stored = JSON.parse(localStorage.getItem("kioku_sync_state") ?? "{}"); + const stored = JSON.parse( + localStorage.getItem("kioku_sync_state") ?? "{}", + ); expect(stored.lastSyncVersion).toBe(10); expect(stored.lastSyncAt).toBeDefined(); }); -- cgit v1.2.3-70-g09d2