IOU/index.ts |
6374 |
removeDraftTransactions() after split bill |
Pass as afterTransition to the navigation call in handleNavigateAfterExpenseCreate |
#61574 |
IOU/index.ts |
6501 |
removeDraftTransaction() after per diem |
Same — thread through navigation |
#54760 |
IOU/index.ts |
6834 |
removeDraftTransactions() after distance request |
Same |
#78109 |
IOU/index.ts |
7522 |
removeDraftTransaction() |
Same |
#53852 |
IOU/index.ts |
7613 |
removeDraftTransaction() |
Same |
#51940 |
IOU/index.ts |
8281 |
removeDraftTransaction() |
Same |
#51940 |
IOU/index.ts |
8539 |
removeDraftTransaction() |
Same |
#51940 |
IOU/index.ts |
9059 |
Clear draft transaction data |
Same |
#51940 |
IOU/index.ts |
14208 |
removeDraftSplitTransaction() |
Same |
#79648 |
IOU/SendInvoice.ts |
787 |
removeDraftTransaction() after invoice |
Same |
#78512 |
Task.ts |
319 |
clearOutTaskInfo() + dismissModalWithReport |
Use dismissModalWithReport({afterTransition: () => clearOutTaskInfo()}) |
#57864 |
ConfirmationStep.tsx |
76 |
clearAssignCardStepAndData() after dismissModal() |
Use Navigation.dismissModal({afterTransition: () => clearAssignCardStepAndData()}) |
#58630 |
TwoFactorAuthActions.ts |
28 |
clearTwoFactorAuthData() after goBack() |
Use Navigation.goBack({afterTransition: () => clearTwoFactorAuthData()}) |
#54404 |
Report/index.ts |
1176 |
clearGroupChat() during creation |
Use Navigation.afterTransition on the subsequent navigation |
#57864 |
Report/index.ts |
1909 |
Clear report data |
Navigation afterTransition |
#47033 |
Report/index.ts |
3328 |
deleteReport() after goBack()/popToSidebar() |
Navigation.goBack({afterTransition: () => deleteReport()}) |
#66890 |
Report/index.ts |
5814 |
Clear report data |
Navigation afterTransition |
#66890 |
MoneyRequestReportView.tsx |
137 |
removeFailedReport() after goBackFromSearchMoneyRequest() |
Thread afterTransition through goBack |
#59386 |
ReportScreen.tsx |
493 |
Clear deleteTransactionNavigateBackUrl |
Navigation.afterTransition (post-navigation cleanup) |
#52740 |
ReportScreen.tsx |
681 |
setShouldShowComposeInput(true) on mount |
Navigation.afterTransition (show after screen entry) |
#38255 |
ReportScreen.tsx |
884 |
Subscribe to report leaving events |
Navigation.afterTransition (after report screen loads) |
#30269 |
ReportActionsView.tsx |
286 |
Set navigatingToLinkedMessage state |
Navigation.afterTransition then setTimeout(10) |
#30269 |
BaseReportActionContextMenu.tsx |
317 |
signOutAndRedirectToSignIn() after hiding menu |
Use context menu's hideContextMenu callback with afterTransition |
#33715 |
PureReportActionItem.tsx |
1740 |
Sign out and redirect |
Navigation.navigate({afterTransition}) or requestAnimationFrame |
#52948 |
MoneyReportHeader.tsx |
1503 |
Delete transaction after nav setup |
Navigation.goBack({afterTransition: () => deleteTransactions()}) |
#74605 |
MoneyReportHeader.tsx |
1526 |
Delete report after goBack |
Navigation.goBack({afterTransition: () => deleteAppReport()}) |
#79539 |
StatusPage.tsx |
136 |
clearDraftCustomStatus() + navigate |
Remove navigateBackToPreviousScreenTask and use Navigation.goBack({afterTransition: () => clearDraft()}) |
#40364 |
StatusPage.tsx |
157 |
Navigate back after status action |
Remove navigateBackToPreviousScreenTask and use Navigation.goBack({afterTransition}) |
#40364 |
TwoFactorAuth/VerifyPage.tsx |
79 |
2FA verify navigation |
Investigate if InteractionManager is needed |
#67762 |
DebugReportActionPage.tsx |
69 |
Defer deletion during nav |
Use Navigation.goBack({afterTransition: () => deleteAction()}) |
#53655 |
DebugTransactionPage.tsx |
65 |
Defer transaction deletion |
Use Navigation.goBack({afterTransition: () => deleteTx()}) |
#53655 |
DebugTransactionViolationPage.tsx |
53 |
Defer violation deletion |
Use Navigation.goBack({afterTransition: () => deleteViolation()}) |
#53969 |
AddUnreportedExpenseFooter.tsx |
57 |
Bulk convert after dismissToSuperWideRHP() |
Use Navigation.dismissToSuperWideRHP({afterTransition: () => convert()}) |
#79328 |
RightModalNavigator.tsx |
130, 198 |
Save scroll offsets / clear 2FA |
Use Navigation.afterTransition in the navigator |
#69531, #79473 |
NetSuiteImportAddCustomSegmentContent.tsx |
51 |
NetSuite segment navigation |
Navigation afterTransition |
#51109 |
NetSuiteImportAddCustomListContent.tsx |
48 |
NetSuite list navigation |
Navigation afterTransition |
#51109 |
Navigation After Transition
Refer to README.md for more information what's the overall strategy and why we're migrating away from
InteractionManager.runAfterInteractions.Strategy
Use
Navigation.navigate/goBack/dismissModal({afterTransition: callback})Every usage in this file defers work until after a screen/modal transition completes. Replace each
InteractionManager.runAfterInteractions()call with theafterTransitionoption available on Navigation methods.TransitionTracker.runAfterTransitions()should never be called directly — it is already wired intoNavigation.tsinternally.IOU/index.tsremoveDraftTransactions()after split billafterTransitionto the navigation call inhandleNavigateAfterExpenseCreateIOU/index.tsremoveDraftTransaction()after per diemIOU/index.tsremoveDraftTransactions()after distance requestIOU/index.tsremoveDraftTransaction()IOU/index.tsremoveDraftTransaction()IOU/index.tsremoveDraftTransaction()IOU/index.tsremoveDraftTransaction()IOU/index.tsIOU/index.tsremoveDraftSplitTransaction()IOU/SendInvoice.tsremoveDraftTransaction()after invoiceTask.tsclearOutTaskInfo()+dismissModalWithReportdismissModalWithReport({afterTransition: () => clearOutTaskInfo()})ConfirmationStep.tsxclearAssignCardStepAndData()afterdismissModal()Navigation.dismissModal({afterTransition: () => clearAssignCardStepAndData()})TwoFactorAuthActions.tsclearTwoFactorAuthData()aftergoBack()Navigation.goBack({afterTransition: () => clearTwoFactorAuthData()})Report/index.tsclearGroupChat()during creationNavigation.afterTransitionon the subsequent navigationReport/index.tsReport/index.tsdeleteReport()aftergoBack()/popToSidebar()Navigation.goBack({afterTransition: () => deleteReport()})Report/index.tsMoneyRequestReportView.tsxremoveFailedReport()aftergoBackFromSearchMoneyRequest()ReportScreen.tsxdeleteTransactionNavigateBackUrlNavigation.afterTransition(post-navigation cleanup)ReportScreen.tsxsetShouldShowComposeInput(true)on mountNavigation.afterTransition(show after screen entry)ReportScreen.tsxNavigation.afterTransition(after report screen loads)ReportActionsView.tsxnavigatingToLinkedMessagestateNavigation.afterTransitionthensetTimeout(10)BaseReportActionContextMenu.tsxsignOutAndRedirectToSignIn()after hiding menuhideContextMenucallback with afterTransitionPureReportActionItem.tsxNavigation.navigate({afterTransition})orrequestAnimationFrameMoneyReportHeader.tsxNavigation.goBack({afterTransition: () => deleteTransactions()})MoneyReportHeader.tsxNavigation.goBack({afterTransition: () => deleteAppReport()})StatusPage.tsxclearDraftCustomStatus()+ navigateNavigation.goBack({afterTransition: () => clearDraft()})StatusPage.tsxNavigation.goBack({afterTransition})TwoFactorAuth/VerifyPage.tsxDebugReportActionPage.tsxNavigation.goBack({afterTransition: () => deleteAction()})DebugTransactionPage.tsxNavigation.goBack({afterTransition: () => deleteTx()})DebugTransactionViolationPage.tsxNavigation.goBack({afterTransition: () => deleteViolation()})AddUnreportedExpenseFooter.tsxdismissToSuperWideRHP()Navigation.dismissToSuperWideRHP({afterTransition: () => convert()})RightModalNavigator.tsxNavigation.afterTransitionin the navigatorNetSuiteImportAddCustomSegmentContent.tsxNetSuiteImportAddCustomListContent.tsx