Part of
#89946 — OptionRowLHN compound component decomposition
Step
11 of 12 — depends on #89947 (Provider + context interface). Incorporates work from #89754.
What
Two extractions in one PR:
OptionRow.DraftIndicator (DraftIndicator.tsx) — pencil Icon; renders when hasDraftComment && optionItem.isAllowedToComment; reads from RowContext
OptionRow.PinIndicator (PinIndicator.tsx) — pin Icon; renders when !brickRoadIndicator && optionItem.isPinned; reads from RowContext
Both carry their own accessibilityLabel (translated inside the component).
Why
Draft and pin indicators are mutually exclusive decoration icons that should each be self-contained. This carries forward the intent of #89754.
Acceptance criteria
- Each indicator owns its render guard and accessibility label
Pencil and Pin icon logic removed from OptionRowLHN.tsx
- No visible behavior or style changes
Issue Owner
Current Issue Owner: @DylanDylann
Part of
#89946 — OptionRowLHN compound component decomposition
Step
11 of 12 — depends on #89947 (Provider + context interface). Incorporates work from #89754.
What
Two extractions in one PR:
OptionRow.DraftIndicator(DraftIndicator.tsx) — pencilIcon; renders whenhasDraftComment && optionItem.isAllowedToComment; reads fromRowContextOptionRow.PinIndicator(PinIndicator.tsx) — pinIcon; renders when!brickRoadIndicator && optionItem.isPinned; reads fromRowContextBoth carry their own
accessibilityLabel(translated inside the component).Why
Draft and pin indicators are mutually exclusive decoration icons that should each be self-contained. This carries forward the intent of #89754.
Acceptance criteria
PencilandPinicon logic removed fromOptionRowLHN.tsxIssue Owner
Current Issue Owner: @DylanDylann