Part of
#89946 — OptionRowLHN compound component decomposition
Step
9 of 12 — depends on #89947 (Provider + context interface). Incorporates intent of #89752 (badges own translation).
What
Two extractions in one PR:
OptionRow.ErrorBadge (ErrorBadge.tsx) — RBR indicator; either an actionBadgeText <Badge error> or a red DotIndicator icon; owns actionBadgeText translation (translate('common.actionBadge.*')); renders nothing when brickRoadIndicator !== ERROR
OptionRow.InfoBadge (InfoBadge.tsx) — GBR indicator; either an actionBadgeText <Badge success> or a green DotIndicator icon; renders nothing when brickRoadIndicator !== INFO
Both read brickRoadIndicator, actionBadge, and environment from RowContext.
Why
Error and info indicators are visually independent and should each own their rendering and translation logic. This also aligns with the intent of the now-superseded #89752.
Acceptance criteria
actionBadgeText translation lives inside each badge component, not in OptionRowLHN.tsx
brickRoadIndicator branching lives inside each badge component
- No visible behavior or style changes
Issue Owner
Current Issue Owner: @DylanDylann
Part of
#89946 — OptionRowLHN compound component decomposition
Step
9 of 12 — depends on #89947 (Provider + context interface). Incorporates intent of #89752 (badges own translation).
What
Two extractions in one PR:
OptionRow.ErrorBadge(ErrorBadge.tsx) — RBR indicator; either anactionBadgeText<Badge error>or a redDotIndicatoricon; ownsactionBadgeTexttranslation (translate('common.actionBadge.*')); renders nothing whenbrickRoadIndicator !== ERROROptionRow.InfoBadge(InfoBadge.tsx) — GBR indicator; either anactionBadgeText<Badge success>or a greenDotIndicatoricon; renders nothing whenbrickRoadIndicator !== INFOBoth read
brickRoadIndicator,actionBadge, and environment fromRowContext.Why
Error and info indicators are visually independent and should each own their rendering and translation logic. This also aligns with the intent of the now-superseded #89752.
Acceptance criteria
actionBadgeTexttranslation lives inside each badge component, not inOptionRowLHN.tsxbrickRoadIndicatorbranching lives inside each badge componentIssue Owner
Current Issue Owner: @DylanDylann