Create task task-051
This commit is contained in:
parent
fafad35cb0
commit
78450a9e39
|
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
id: task-051
|
||||||
|
title: Offline storage and cold reload from offline state
|
||||||
|
status: Done
|
||||||
|
assignee: []
|
||||||
|
created_date: '2025-12-15 04:58'
|
||||||
|
labels:
|
||||||
|
- feature
|
||||||
|
- offline
|
||||||
|
- storage
|
||||||
|
- IndexedDB
|
||||||
|
dependencies: []
|
||||||
|
priority: high
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
|
Implement offline storage fallback so that when a browser reloads without network connectivity, it automatically loads from local IndexedDB storage and renders the last known state of the board for that user.
|
||||||
|
|
||||||
|
## Implementation Summary (Completed)
|
||||||
|
|
||||||
|
### Changes Made:
|
||||||
|
1. **Board.tsx** - Updated render condition to allow rendering when offline with local data (`isOfflineWithLocalData` flag)
|
||||||
|
2. **useAutomergeStoreV2** - Added `isNetworkOnline` parameter and offline fast path that immediately loads records from Automerge doc without waiting for network patches
|
||||||
|
3. **useAutomergeSyncRepo** - Passes `isNetworkOnline` to `useAutomergeStoreV2`
|
||||||
|
4. **ConnectionStatusIndicator** - Updated messaging to clarify users are viewing locally cached canvas when offline
|
||||||
|
|
||||||
|
### How It Works:
|
||||||
|
1. useAutomergeSyncRepo detects no network and loads data from IndexedDB
|
||||||
|
2. useAutomergeStoreV2 receives handle with local data and detects offline state
|
||||||
|
3. Offline Fast Path immediately loads records into TLDraw store
|
||||||
|
4. Board.tsx renders with local data
|
||||||
|
5. ConnectionStatusIndicator shows "Working Offline - Viewing locally saved canvas"
|
||||||
|
6. When back online, Automerge automatically syncs via CRDT merge
|
||||||
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Board renders from local IndexedDB when browser reloads offline
|
||||||
|
- [ ] #2 User sees 'Working Offline' indicator with clear messaging
|
||||||
|
- [ ] #3 Changes made offline are saved locally
|
||||||
|
- [ ] #4 Auto-sync when network connectivity returns
|
||||||
|
- [ ] #5 No data loss during offline/online transitions
|
||||||
|
<!-- AC:END -->
|
||||||
Loading…
Reference in New Issue