Skip to content

[Due for Payment 2026-06-22][BATCH 2] Migrate Navigation usage #83062

Closed

Description

@blazejkustra

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 the afterTransition option available on Navigation methods.

TransitionTracker.runAfterTransitions() should never be called directly — it is already wired into Navigation.ts internally.

File Line Current Migration PR
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
Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. blazejkustra commented on Feb 20, 2026

    @blazejkustra
    ContributorAuthor

    Please do not post proposals, since this will be implemented by Software Mansion team or later distributed to externals. Thank you!

  2. melvin-bot commented on May 18, 2026

    @melvin-bot

    @blazejkustra, this Monthly task hasn't been acted upon in 6 weeks; closing.

    If you disagree, feel encouraged to reopen it -- but pick your least important issue to close instead.

  3. melvin-bot commented on May 28, 2026

    @melvin-bot

    Triggered auto assignment to @luacmartins, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

  4. melvin-bot commented on May 29, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  5. 49 remaining items

  6. changed the title [-][Due for payment 2026-06-19] [Due for payment 2026-06-18] [Due for payment 2026-06-17] [Due for payment 2026-06-09] [BATCH 2] Migrate Navigation usage[/-] [+][Due for payment 2026-06-19] [BATCH 2] Migrate Navigation usage[/+] on Jun 15, 2026
  7. melvin-bot commented on Jun 17, 2026

    @melvin-bot

    @daledah Huh... This is 4 days overdue. Who can take care of this?

  8. changed the title [-][Due for payment 2026-06-19] [BATCH 2] Migrate Navigation usage[/-] [+][BATCH 2] Migrate Navigation usage[/+] on Jun 18, 2026
  9. mallenexpensify commented on Jun 18, 2026

    @mallenexpensify
    Contributor

    Bunch of PRs linked here, Please comment and tag me if/when payment is due, thx

  10. daledah commented on Jun 19, 2026

    @daledah
    Contributor

    Hi @collectioneur, I've done a thorough check across the codebase and confirmed that all 35 items listed in the issue table no longer use InteractionManager.runAfterInteractions. All migrations have been completed through the 3 PRs.
    Can you confirm that this issue is fully resolved so we can process the payment and close it?

  11. collectioneur commented on Jun 19, 2026

    @collectioneur
    Contributor

    Yes, this issue can be closed 🙂

  12. daledah commented on Jun 22, 2026

    @daledah
    Contributor

    @mallenexpensify Please process the payment here because the third PR was merged two weeks ago and everything has been resolved.

  13. mallenexpensify commented on Jun 22, 2026

    @mallenexpensify
    Contributor

    @daledah how much is due? I see you mentione 3 PRs, I also see multiple deploy blockers mentioned above.

  14. changed the title [-][BATCH 2] Migrate Navigation usage[/-] [+][Due for Payment 2026-06-22][BATCH 2] Migrate Navigation usage[/+] on Jun 22, 2026
  15. daledah commented on Jun 23, 2026

    @daledah
    Contributor

    We have 3 PRs for this issue, and only 1 confirmed regression: #92047

    As for the other 2 linked regressions, their root causes are unrelated to our PRs, so I don't think they should be counted against this implementation.

    Given that, I think the compensation should be $625 (250 × 2 + 125).

  16. mallenexpensify commented on Jun 23, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @daledah due $625 via NewDot

    Thx. If anyone disagrees, comment/reopen.

  17. quinthar commented on Jun 29, 2026

    @quinthar
    Contributor

    Approved $625 to @daledah

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions