refactor: eliminate prop drilling in JailsPage with context provider
Replace multi-hop prop forwarding with a dedicated JailContext that manages jail state and actions. This reduces coupling, simplifies the component hierarchy, and makes the data flow more explicit. Changes: - Create JailContext.tsx with JailProvider and useJailContext hook - Wrap JailsPage content with JailProvider to expose jail state - Refactor JailOverviewSection to use useJailContext instead of props - Remove 10 props from JailOverviewSection component signature - Add comprehensive documentation on state ownership and prop drilling Benefits: - Eliminates unnecessary prop chains through intermediate components - Makes component contracts clearer (no longer need to pass unrelated props) - Simplifies future refactoring of jail-related functionality - Sets a pattern for other page-scoped state management Testing: - TypeScript type check passes (tsc --noEmit) - Frontend builds successfully - Existing JailsPage tests pass with new context structure Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1,23 +1,3 @@
|
||||
## 11) Logging semantics are inconsistent across backend modules
|
||||
- Where found:
|
||||
- [backend/app/services](backend/app/services)
|
||||
- [backend/app/tasks](backend/app/tasks)
|
||||
- Why this is needed:
|
||||
- Uneven level usage reduces observability quality.
|
||||
- Goal:
|
||||
- Standardize logging levels and event naming.
|
||||
- What to do:
|
||||
- Define logging conventions.
|
||||
- Align service/task logging with that convention.
|
||||
- Possible traps and issues:
|
||||
- Excessive log volume if levels are set too low globally.
|
||||
- Docs changes needed:
|
||||
- Add logging policy and examples.
|
||||
- Doc references:
|
||||
- [Docs/Backend-Development.md](Docs/Backend-Development.md)
|
||||
|
||||
---
|
||||
|
||||
## 12) Prop drilling in jail overview page
|
||||
- Where found:
|
||||
- [frontend/src/pages/jails/JailOverviewSection.tsx](frontend/src/pages/jails/JailOverviewSection.tsx)
|
||||
|
||||
Reference in New Issue
Block a user