zulip/TASKS.md

67 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-03-04 18:26:43 -08:00
# Tasks & Issues
## 1. Critical Issues
2026-03-04 18:55:48 -08:00
- [x] **1.1 Fix missing `del` import in store/index.js** ✅ COMPLETE
- Line 3 now imports `get, set, del` from idb-keyval
- Used in removeItem function on line 13
- No more ReferenceError
- [x] **1.2 Fix hydration flag initialization** ✅ COMPLETE
- Implemented Option A: Initialize `_hydrated: true` by default
- Removed problematic `onRehydrateStorage` callback
- App now loads immediately without hanging on "loading..."
- Persistence happens in background automatically
- [x] **1.3 Consolidate duplicate storage implementation** ✅ COMPLETE
- Single storage implementation in `store/index.js`
- Uses idb-keyval directly with createJSONStorage
- Clean, simple approach without extra middleware files
2026-03-04 18:26:43 -08:00
## 2. Architectural Improvements
2026-03-04 18:55:48 -08:00
- [x] **2.1 Add error handling** ✅ COMPLETE
- Added try/catch blocks around all IndexedDB operations (getItem, setItem, removeItem)
- Implemented fallback: returns null on getItem error, silently fails on setItem/removeItem
- Added error state to store with auto-clear after 3 seconds
- Added validation in addItem and removeItem actions
- Created error-toast component with slide-in animation
- Toast shows error messages and allows manual dismissal
- [x] **2.2 Add partialize option to persist middleware** ✅ COMPLETE
- Added partialize to exclude `_hydrated` flag from persistence
- Only persists: user, items, and route
2026-03-04 18:26:43 -08:00
- Prevents unnecessary data in IndexedDB
- [ ] **2.3 Add basic CSS reset to index.html**
- No base styles, margins, or font settings currently
- Consider adding minimal reset or normalize.css
- [ ] **2.4 Add loading states for async operations**
- No loading indicators for add/remove item operations
- Consider adding optimistic updates
## 3. Nice to Have
- [ ] **3.1 Add TypeScript types** (optional)
- JSDoc comments for better IDE support
- Or migrate to .ts files with no-build setup
- [ ] **3.2 Add cross-tab synchronization**
- README mentions optional `sync.js` middleware
- Implement BroadcastChannel for cross-tab state sync
- [ ] **3.3 Add route history management**
- Integrate with browser history API
- Support back/forward navigation
- [ ] **3.4 Add unit tests**
- Test store actions and selectors
- Test component rendering
- Test persistence layer
2026-03-04 18:58:22 -08:00
- [ ] **3.5 Add Storybook support**
- Introduces parallel build (vite internally) but core app remains no-build
- Storybook includes raw/native web component support
- Ensure individual components and layouts are properly organized, documented, demonstrated, and tested