Sub-issue of #83762.
Migration plan: Guccio163 comment.
Batch
Files
text + icon · plain:
src/components/AnimatedSubmitButton/index.tsx ×2
src/components/Attachments/AttachmentView/index.tsx
src/components/Domain/CopyableTextField.tsx
src/components/Search/SearchPageHeader/SearchSaveButton.tsx
src/components/SettlementButton/AnimatedSettlementButton.tsx
src/pages/Debug/DebugJSON.tsx
src/pages/Debug/Report/DebugReportPage.tsx ×3
src/pages/MissingPersonalDetails/subPages/PIN.tsx
src/pages/domain/DomainsListPage.tsx
src/pages/inbox/report/ShowPreviousMessagesButton.tsx
src/pages/settings/Agents/AgentsPage.tsx
src/pages/settings/Agents/Fields/EditAgentAvatarPage.tsx ×2
src/pages/settings/Profile/Avatar/AvatarPreview.tsx
src/pages/workspace/WorkspacesListPage.tsx
icon-only:
src/components/Attachments/AttachmentCarousel/CarouselButtons.tsx ×2
src/components/AvatarCropModal/AvatarCropModal.tsx ×2
src/components/MapView/GPSMapView.tsx
src/components/MapView/MapView.tsx
src/components/MapView/MapViewImpl.web.tsx
src/pages/TransactionMerge/TransactionMergeReceipts.tsx
src/pages/iou/request/step/IOURequestStepScan/ReceiptView/index.tsx
src/pages/iou/request/step/IOURequestStepScan/components/ReceiptPreviews/index.tsx
src/pages/settings/Agents/AgentsListRow.tsx ×3
no-content:
src/components/Attachments/AttachmentCarousel/CarouselItem.tsx
src/components/ButtonComposed/index.tsx ⚠️ SKIP (JSDoc example)
src/components/ReportActionItem/ChronosOOOListActions.tsx
src/pages/inbox/report/FloatingMessageCounter.tsx
src/pages/inbox/report/actionContents/ChatMessageContent.tsx
src/pages/settings/Subscription/CardSection/CardSectionButton/index.tsx
src/pages/settings/Wallet/CardDetailsActionButtons.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: @ZhenjaHorbach
Sub-issue of #83762.
Migration plan: Guccio163 comment.
Batch
AnimatedSubmitButton,AnimatedSettlementButton)Files
text + icon · plain:
src/components/AnimatedSubmitButton/index.tsx×2src/components/Attachments/AttachmentView/index.tsxsrc/components/Domain/CopyableTextField.tsxsrc/components/Search/SearchPageHeader/SearchSaveButton.tsxsrc/components/SettlementButton/AnimatedSettlementButton.tsxsrc/pages/Debug/DebugJSON.tsxsrc/pages/Debug/Report/DebugReportPage.tsx×3src/pages/MissingPersonalDetails/subPages/PIN.tsxsrc/pages/domain/DomainsListPage.tsxsrc/pages/inbox/report/ShowPreviousMessagesButton.tsxsrc/pages/settings/Agents/AgentsPage.tsxsrc/pages/settings/Agents/Fields/EditAgentAvatarPage.tsx×2src/pages/settings/Profile/Avatar/AvatarPreview.tsxsrc/pages/workspace/WorkspacesListPage.tsxicon-only:
src/components/Attachments/AttachmentCarousel/CarouselButtons.tsx×2src/components/AvatarCropModal/AvatarCropModal.tsx×2src/components/MapView/GPSMapView.tsxsrc/components/MapView/MapView.tsxsrc/components/MapView/MapViewImpl.web.tsxsrc/pages/TransactionMerge/TransactionMergeReceipts.tsxsrc/pages/iou/request/step/IOURequestStepScan/ReceiptView/index.tsxsrc/pages/iou/request/step/IOURequestStepScan/components/ReceiptPreviews/index.tsxsrc/pages/settings/Agents/AgentsListRow.tsx×3no-content:
src/components/Attachments/AttachmentCarousel/CarouselItem.tsxsrc/components/ButtonComposed/index.tsxsrc/components/ReportActionItem/ChronosOOOListActions.tsxsrc/pages/inbox/report/FloatingMessageCounter.tsxsrc/pages/inbox/report/actionContents/ChatMessageContent.tsxsrc/pages/settings/Subscription/CardSection/CardSectionButton/index.tsxsrc/pages/settings/Wallet/CardDetailsActionButtons.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), except explicit SKIP entriesDependencies
Issue Owner
Current Issue Owner: @ZhenjaHorbach