Sub-issue of #83762.
Migration plan: Guccio163 comment.
Batch
Files
workspace:
src/pages/workspace/DynamicWorkspaceOverviewPlanTypePage.tsx
src/pages/workspace/WorkspaceNewRoomPage.tsx
src/pages/workspace/accounting/certinia/prerequisites/CertiniaPrerequisitesStep.tsx
src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/subPages/NetSuiteTokenSetupContent.tsx
src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx
src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx
src/pages/workspace/companyCards/WorkspaceCompanyCardExpensifyCardPromotionBanner.tsx
src/pages/workspace/companyCards/addNew/CardInstructionsStep.tsx
src/pages/workspace/companyCards/addNew/ImportFromFileStep.tsx
src/pages/workspace/companyCards/assignCard/ConfirmationStep.tsx
src/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx ×2
src/pages/workspace/hr/HRProviderCard.tsx
src/pages/workspace/members/ImportedMembersConfirmationPage.tsx
src/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsx
src/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsx
src/pages/workspace/rules/AgentRules/EditAgentRulePage.tsx
src/pages/workspace/rules/MerchantRules/MerchantRulePageBase.tsx ×2
src/pages/workspace/rules/SpendRules/SpendRulePageBase.tsx
src/pages/workspace/taxes/WorkspaceCreateTaxValuePage.tsx
src/pages/workspace/travel/GetStartedTravel.tsx
src/pages/workspace/travel/ReviewingRequest.tsx
src/pages/workspace/travel/WorkspaceTravelInvoicingExportPage.tsx ×2
src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx ×2
settings:
src/pages/settings/ExitSurvey/DynamicExitSurveyReasonPage.tsx ×2
src/pages/settings/Profile/CustomStatus/StatusPage.tsx
src/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsx
src/pages/settings/Security/LockAccount/LockAccountPageBase.tsx
src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx
src/pages/settings/Subscription/CardSection/CardSectionDataEmpty/index.tsx
src/pages/settings/Subscription/SubscriptionPlan/SubscriptionPlanCardActionButton.tsx ×2
src/pages/settings/Wallet/ActivatePhysicalCardPageBase.tsx
src/pages/settings/Wallet/PersonalCardDetailsPage.tsx
src/pages/settings/Wallet/PersonalCards/PersonalCardWarning.tsx ×2
src/pages/settings/Wallet/ReportVirtualCardFraudConfirmationPage.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
Files
workspace:
src/pages/workspace/DynamicWorkspaceOverviewPlanTypePage.tsxsrc/pages/workspace/WorkspaceNewRoomPage.tsxsrc/pages/workspace/accounting/certinia/prerequisites/CertiniaPrerequisitesStep.tsxsrc/pages/workspace/accounting/netsuite/NetSuiteTokenInput/subPages/NetSuiteTokenSetupContent.tsxsrc/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsxsrc/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsxsrc/pages/workspace/companyCards/WorkspaceCompanyCardExpensifyCardPromotionBanner.tsxsrc/pages/workspace/companyCards/addNew/CardInstructionsStep.tsxsrc/pages/workspace/companyCards/addNew/ImportFromFileStep.tsxsrc/pages/workspace/companyCards/assignCard/ConfirmationStep.tsxsrc/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx×2src/pages/workspace/hr/HRProviderCard.tsxsrc/pages/workspace/members/ImportedMembersConfirmationPage.tsxsrc/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsxsrc/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsxsrc/pages/workspace/rules/AgentRules/EditAgentRulePage.tsxsrc/pages/workspace/rules/MerchantRules/MerchantRulePageBase.tsx×2src/pages/workspace/rules/SpendRules/SpendRulePageBase.tsxsrc/pages/workspace/taxes/WorkspaceCreateTaxValuePage.tsxsrc/pages/workspace/travel/GetStartedTravel.tsxsrc/pages/workspace/travel/ReviewingRequest.tsxsrc/pages/workspace/travel/WorkspaceTravelInvoicingExportPage.tsx×2src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx×2settings:
src/pages/settings/ExitSurvey/DynamicExitSurveyReasonPage.tsx×2src/pages/settings/Profile/CustomStatus/StatusPage.tsxsrc/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsxsrc/pages/settings/Security/LockAccount/LockAccountPageBase.tsxsrc/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsxsrc/pages/settings/Subscription/CardSection/CardSectionDataEmpty/index.tsxsrc/pages/settings/Subscription/SubscriptionPlan/SubscriptionPlanCardActionButton.tsx×2src/pages/settings/Wallet/ActivatePhysicalCardPageBase.tsxsrc/pages/settings/Wallet/PersonalCardDetailsPage.tsxsrc/pages/settings/Wallet/PersonalCards/PersonalCardWarning.tsx×2src/pages/settings/Wallet/ReportVirtualCardFraudConfirmationPage.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: @ZhenjaHorbach