43 lines
930 B
Markdown
43 lines
930 B
Markdown
|
|
# ADR-006: UI Component Purity and Container-Facade Pattern
|
||
|
|
|
||
|
|
Status: Accepted
|
||
|
|
Date: 2026-07-03
|
||
|
|
|
||
|
|
## Context
|
||
|
|
|
||
|
|
Reusable platform components cannot contain business and integration concerns.
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
|
||
|
|
Separate visual and business responsibilities:
|
||
|
|
|
||
|
|
- UI components are presentational only.
|
||
|
|
- Container components connect facades to UI components.
|
||
|
|
- Facades own orchestration and use services.
|
||
|
|
- Services handle IO and integration.
|
||
|
|
|
||
|
|
UI component restrictions:
|
||
|
|
|
||
|
|
- No HttpClient.
|
||
|
|
- No localStorage/sessionStorage access.
|
||
|
|
- No environment import.
|
||
|
|
- No tenant awareness.
|
||
|
|
- No authentication/payment logic.
|
||
|
|
- No route logic.
|
||
|
|
|
||
|
|
## Consequences
|
||
|
|
|
||
|
|
Positive:
|
||
|
|
|
||
|
|
- Maximum reuse and testability.
|
||
|
|
- Supports widget library portability.
|
||
|
|
|
||
|
|
Negative:
|
||
|
|
|
||
|
|
- Requires refactoring of mixed legacy components.
|
||
|
|
|
||
|
|
## Compliance Requirements
|
||
|
|
|
||
|
|
- Components must use Inputs for data and Outputs for events.
|
||
|
|
- Business behavior belongs to facades/containers only.
|