tpmjs/apps/web/src/components/home
Ajax Davis 52c7d8d844 fix: resolve new ESLint rules from eslint-plugin-react-hooks update
- Use useId() instead of Math.random() for stable ID generation in Checkbox and Switch
- Use deterministic rotation/delay calculations instead of Math.random() in CategoryGrid and ProblemSection
- Add eslint-disable comments for intentional setState in useEffect patterns:
  - Hydration safety (setMounted)
  - Initial localStorage sync
  - Route-based UI sync
  - Controlled component sync
  - Browser API initial sync (scroll position, media queries)
- Add eslint-disable for ref merging pattern in AnimatedCounter and StatCard

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-09 23:25:15 +10:00
..
CategoryGrid.tsx fix: resolve new ESLint rules from eslint-plugin-react-hooks update 2026-01-09 23:25:15 +10:00
DeveloperStories.tsx feat: implement revolutionary dithered landing page with Bayer matrix animation 2025-11-27 22:44:32 +10:00
EcosystemStats.tsx feat: implement revolutionary dithered landing page with Bayer matrix animation 2025-11-27 22:44:32 +10:00
GlitchBars.tsx fix: replace hardcoded dark mode colors with theme-aware semantic tokens in tool-search page 2025-11-27 15:37:46 +10:00
HeroSection.tsx fix: replace marketing speak with straightforward copy on homepage 2025-12-28 12:47:03 +10:00
ProblemSection.tsx fix: resolve new ESLint rules from eslint-plugin-react-hooks update 2026-01-09 23:25:15 +10:00
VisionSection.tsx chore: prepare for Hacker News launch 2025-12-28 11:46:59 +10:00