attempting to resurrect full beans
This commit is contained in:
parent
bceee7ecf1
commit
a961f387d6
9 changed files with 170 additions and 65 deletions
60
TASKS.md
Normal file
60
TASKS.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Tasks & Issues
|
||||
|
||||
## 1. Critical Issues
|
||||
|
||||
- [ ] **1.1 Fix missing `del` import in store/index.js**
|
||||
- Line 3 imports `get, set` from idb-keyval but `del` is used on line 13
|
||||
- Add `del` to the import statement
|
||||
- This will cause a ReferenceError when removeItem is called
|
||||
|
||||
- [ ] **1.2 Fix hydration flag initialization**
|
||||
- The `onRehydrateStorage` callback uses `store.setState()` before `store` is fully initialized
|
||||
- Creates a circular reference issue preventing app from loading
|
||||
- **Options:**
|
||||
- A) Initialize `_hydrated: true` by default (simplest)
|
||||
- B) Use Zustand's persist middleware built-in hydration detection
|
||||
- C) Move hydration callback outside store creation
|
||||
|
||||
- [ ] **1.3 Consolidate duplicate storage implementation**
|
||||
- Storage is defined in both `store/index.js` AND `store/middleware/persistence.js`
|
||||
- The middleware file exports `idbStorage` but it's not being used
|
||||
- **Decision needed:** Use one or the other, not both
|
||||
|
||||
## 2. Architectural Improvements
|
||||
|
||||
- [ ] **2.1 Add error handling**
|
||||
- Add try/catch blocks around IndexedDB operations
|
||||
- Implement fallback if IndexedDB fails or is unavailable
|
||||
- Add user feedback for errors (toast notifications?)
|
||||
|
||||
- [ ] **2.2 Add partialize option to persist middleware**
|
||||
- Currently saves ALL state including `_hydrated` flag and `route`
|
||||
- Should use `partialize: (state) => ({ user: state.user, items: state.items })`
|
||||
- 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue