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 / danger → variant="success" / variant="danger"
small / medium / large → size={CONST.BUTTON_SIZE.SMALL | MEDIUM | LARGE}
link → <LinkButton> from @components/ButtonComposed/composed/LinkButton
- Forwarded size props: update
DROPDOWN_BUTTON_SIZE → BUTTON_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/buttonSize → variant/size) — tracked separately
- Keep each wrapper's public API as-is; map to composed Button internally only
Acceptance criteria
Dependencies
- Blocked by: #93789
- Blocked by batch 1: deprecation guard must exist before merge
Issue Owner
Current Issue Owner: @mikolajpochec
Sub-issue of #83762.
Migration plan: Guccio163 comment.
Batch
Files
src/pages/ScheduleCall/ScheduleCallPage.tsxsrc/pages/TransactionMerge/ReceiptReviewPage.tsxsrc/pages/Travel/DynamicDomainPermissionInfoPage.tsxsrc/pages/Travel/DynamicDomainSelectorPage.tsxsrc/pages/Travel/DynamicPublicDomainErrorPage.tsxsrc/pages/Travel/ManageTrips.tsxsrc/pages/iou/SplitExpenseEditPage.tsx×2src/pages/iou/SplitExpensePage.tsxsrc/pages/iou/request/step/DistanceManualTabContent.tsxsrc/pages/iou/request/step/DistanceMapTabContent.tsxsrc/pages/iou/request/step/IOURequestStepCategory.tsxsrc/pages/iou/request/step/IOURequestStepDestination.tsxsrc/pages/iou/request/step/IOURequestStepDistanceGPS/GPSButtons/index.tsx×3src/pages/iou/request/step/IOURequestStepDistanceOdometer.tsx×2src/pages/iou/request/step/IOURequestStepHours.tsxsrc/pages/iou/request/step/IOURequestStepOdometerImage/index.native.tsxsrc/pages/iou/request/step/IOURequestStepOdometerImage/index.tsx×2src/pages/iou/request/step/IOURequestStepScan/components/Camera/CameraCapture.tsxsrc/pages/iou/request/step/IOURequestStepScan/components/Camera/FileUpload.tsxsrc/pages/iou/request/step/IOURequestStepScan/components/CameraPermissionPrompt.tsxsrc/pages/iou/request/step/IOURequestStepTag.tsxsrc/pages/iou/request/step/IOURequestStepWaypoint.tsxMigration rules
Mechanical swap per prop-change rules:
@components/Button→@components/ButtonComposedtext/icon/ related props →<Button.Text>/<Button.Icon>childrensuccess/danger→variant="success"/variant="danger"small/medium/large→size={CONST.BUTTON_SIZE.SMALL | MEDIUM | LARGE}link→<LinkButton>from@components/ButtonComposed/composed/LinkButtonDROPDOWN_BUTTON_SIZE→BUTTON_SIZEwhere applicableOut of scope
ButtonWithDropdownMenusuccess/buttonSize→variant/size) — tracked separatelyAcceptance criteria
@components/Buttonimport)Dependencies
Issue Owner
Current Issue Owner: @mikolajpochec