Chris Farhood
|
5256c8febd
|
feat: extract business logic into custom React hooks (Phase 3.1)
Refactor components to use custom hooks for business logic, dramatically
simplifying component code while improving testability and reusability.
Changes:
- Create useSealedSecretEncryption() hook
- Encapsulates complete encryption workflow
- Handles validation, cert fetching, expiry checks, encryption
- Built-in error handling with snackbar notifications
- Returns ready-to-apply SealedSecret object
- Type-safe Result<T, E> pattern
- Create useControllerHealth() hook
- Encapsulates health monitoring logic
- Auto-refresh with configurable interval
- Manual refresh function
- Loading state management
- Proper cleanup
- Refactor EncryptDialog component
- Simplified from 215 → 130 lines (-85 lines, -40%)
- Business logic extracted to hook
- Focus on presentation logic only
- Much easier to understand and maintain
- Refactor ControllerStatus component
- Simplified from 115 → 58 lines (-57 lines, -50%)
- One-line hook usage
- Perfect abstraction example
Benefits:
- Separation of concerns (business vs presentation)
- Reusable hooks across components
- Easier to test (hooks testable independently)
- Better maintainability (single source of truth)
- Code reduction: ~140 lines removed from components
Build: 352.05 kB (96.99 kB gzipped), +0.71 kB (+0.2%)
Phase 3.1 complete. 8 of 14 phases done (57%).
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
|
2026-02-11 22:02:37 -05:00 |
|