- Create shared hooks/usePaginatedList.js accepting a fetch function and optional extra params
- Update all 7 list pages to use the shared hook
- Delete 11 individual hook files (useItems, useEmployees, useLocations, etc.)
- Restore error propagation in all fetch methods (was commented out)
- Change static header objects to functions so auth token is fresh per request
- Add missing return in putFormBody
- Properly throw on 401 unauthorized responses
- Make tokenUtility.js the single source of truth for localStorage
- Add getRawToken() and isAuthenticated() to tokenUtility
- Rewrite authService.js to delegate storage to tokenUtility
- Fix calendar api.js direct localStorage access
- Remove unused setToken import from apiUtil.js
- Use relative API URLs instead of hardcoded production/localhost URLs
- Fix setupProxy.js for http-proxy-middleware v3 syntax
- Point proxy to backend HTTP port for dev compatibility