Skip to content

Button migration batch 4: text-only styled — iou+txn #95173

Description

@mountiny

Sub-issue of #83762.
Migration plan: Guccio163 comment.

Batch

Files

  • src/pages/ScheduleCall/ScheduleCallPage.tsx
  • src/pages/TransactionMerge/ReceiptReviewPage.tsx
  • src/pages/Travel/DynamicDomainPermissionInfoPage.tsx
  • src/pages/Travel/DynamicDomainSelectorPage.tsx
  • src/pages/Travel/DynamicPublicDomainErrorPage.tsx
  • src/pages/Travel/ManageTrips.tsx
  • src/pages/iou/SplitExpenseEditPage.tsx ×2
  • src/pages/iou/SplitExpensePage.tsx
  • src/pages/iou/request/step/DistanceManualTabContent.tsx
  • src/pages/iou/request/step/DistanceMapTabContent.tsx
  • src/pages/iou/request/step/IOURequestStepCategory.tsx
  • src/pages/iou/request/step/IOURequestStepDestination.tsx
  • src/pages/iou/request/step/IOURequestStepDistanceGPS/GPSButtons/index.tsx ×3
  • src/pages/iou/request/step/IOURequestStepDistanceOdometer.tsx ×2
  • src/pages/iou/request/step/IOURequestStepHours.tsx
  • src/pages/iou/request/step/IOURequestStepOdometerImage/index.native.tsx
  • src/pages/iou/request/step/IOURequestStepOdometerImage/index.tsx ×2
  • src/pages/iou/request/step/IOURequestStepScan/components/Camera/CameraCapture.tsx
  • src/pages/iou/request/step/IOURequestStepScan/components/Camera/FileUpload.tsx
  • src/pages/iou/request/step/IOURequestStepScan/components/CameraPermissionPrompt.tsx
  • src/pages/iou/request/step/IOURequestStepTag.tsx
  • src/pages/iou/request/step/IOURequestStepWaypoint.tsx

Migration rules

Mechanical swap per prop-change rules:

  • Import: @components/Button@components/ButtonComposed
  • text / icon / related props → <Button.Text> / <Button.Icon> children
  • success / dangervariant="success" / variant="danger"
  • small / medium / largesize={CONST.BUTTON_SIZE.SMALL | MEDIUM | LARGE}
  • link<LinkButton> from @components/ButtonComposed/composed/LinkButton
  • Forwarded size props: update DROPDOWN_BUTTON_SIZEBUTTON_SIZE where applicable
// before
<Button success large text="Add members" icon={Plus} iconRight={ArrowRight} onPress={onAdd} />
// after
<Button variant="success" size={CONST.BUTTON_SIZE.LARGE} onPress={onAdd}>
    <Button.Icon src={Plus} />
    <Button.Text>Add members</Button.Text>
    <Button.Icon src={ArrowRight} />
</Button>

Out of scope

  • Renaming wrapper public APIs (ButtonWithDropdownMenu success/buttonSizevariant/size) — tracked separately
  • Keep each wrapper's public API as-is; map to composed Button internally only

Acceptance criteria

  • Every listed file fully migrated (no remaining @components/Button import)
  • eslint-seatbelt count reduced accordingly
  • Prop forwarding chains updated where size types change
  • PR author spot-checks 2–3 representative screens

Dependencies

  • Blocked by: #93789
  • Blocked by batch 1: deprecation guard must exist before merge
Issue OwnerCurrent Issue Owner: @mikolajpochec

Metadata

Metadata

Labels

Type

No type

Projects

Status
SUBISSUE

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions