Skip to content

[LWM] feat(LIVE-29443): add mobile swap status drawer#17458

Open
philipptpunkt wants to merge 1 commit into
feat/LIVE-29443-mobile-swap-status-infrafrom
feat/LIVE-29447-mobile-swap-transaction-status
Open

[LWM] feat(LIVE-29443): add mobile swap status drawer#17458
philipptpunkt wants to merge 1 commit into
feat/LIVE-29443-mobile-swap-status-infrafrom
feat/LIVE-29447-mobile-swap-transaction-status

Conversation

@philipptpunkt

@philipptpunkt philipptpunkt commented May 13, 2026

Copy link
Copy Markdown
Contributor

Jira: https://ledgerhq.atlassian.net/browse/LIVE-29443

Summary

  • Add the Mobile swap transaction status drawer UI, hooks, translations, and tests.
  • Wire swap history and post-swap pending operation flows to open the new drawer.
  • Bundle the NotificationsPrompt swap-flow test update as a test-only adjustment for the new drawer queue behavior.

Review Scope

  • Primary: @ledgerhq/ptx for the swap transaction status feature and swap screen entry points.
  • Additional: @ledgerhq/wallet-xp for Mobile drawer integration and shared Mobile app wiring.
  • Note: NotificationsPromptSwapFlow.test.tsx is Engagement-owned but included here as a mechanical test update tied to the new drawer behavior.

Validation

  • Mobile swap transaction status unit and integration tests passed.
  • PendingOperation focused test passed.
  • NotificationsPromptSwapFlow integration test passed.
Screenshot_20260622_155807_LL  DEV Screenshot_20260622_143410_LL  DEV

Stack (managed by stac-man)

@live-github-bot live-github-bot Bot added mobile Has changes in LLM translations Translation files have been touched labels May 13, 2026
@live-github-bot live-github-bot Bot changed the title feat(LIVE-29447): add mobile swap status drawer [LWM] feat(LIVE-29447): add mobile swap status drawer May 13, 2026
@github-actions

github-actions Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Web Tools Build Status

Build Status Deployment
Web Tools Build ⏭️ Skipped
Native Storybook Build ⏭️ Skipped
React Storybook Build ⏭️ Skipped

@github-actions

github-actions Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Rsdoctor Bundle Diff Analysis

Found 7 projects in monorepo, 7 projects with changes.

📊 Quick Summary
Project Total Size Change
desktop-main 2.6 MB -
desktop-preloader 7.1 KB -
desktop-renderer 81.2 MB -
desktop-webviewDappPreloader 36.9 KB -
desktop-workers 36.8 KB -
desktop-webviewPreloader 200.0 B -
mobile 258.9 MB -
📋 Detailed Reports (Click to expand)

📁 desktop-main

Path: rsdoctor/desktop-main/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 2.6 MB - -
📄 JavaScript 2.4 MB - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 135.3 KB - -

📁 desktop-preloader

Path: rsdoctor/desktop-preloader/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 7.1 KB - -
📄 JavaScript 5.3 KB - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 1.8 KB - -

📁 desktop-renderer

Path: rsdoctor/desktop-renderer/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 81.2 MB - -
📄 JavaScript 28.9 MB - -
🎨 CSS 172.6 KB - -
🌐 HTML 1.8 KB - -
📁 Other Assets 52.2 MB - -

📁 desktop-webviewDappPreloader

Path: rsdoctor/desktop-webviewDappPreloader/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 36.9 KB - -
📄 JavaScript 36.9 KB - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 0 B - -

📁 desktop-workers

Path: rsdoctor/desktop-workers/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 36.8 KB - -
📄 JavaScript 36.8 KB - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 0 B - -

📁 desktop-webviewPreloader

Path: rsdoctor/desktop-webviewPreloader/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 200.0 B - -
📄 JavaScript 200.0 B - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 0 B - -

📁 mobile

Path: rsdoctor/mobile/rsdoctor-data.json

⚠️ No baseline data found - Unable to perform comparison analysis

Metric Current Baseline Change
📊 Total Size 258.9 MB - -
📄 JavaScript 108.8 MB - -
🎨 CSS 0 B - -
🌐 HTML 0 B - -
📁 Other Assets 150.1 MB - -

Generated by Rsdoctor GitHub Action

@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from e8b59b7 to 3f966b3 Compare May 21, 2026 12:25
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 11ca267 to 1310fe2 Compare May 21, 2026 12:25
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 3f966b3 to cf60133 Compare May 21, 2026 14:28
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 1310fe2 to 2668b28 Compare May 21, 2026 14:28
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from cf60133 to 0967d94 Compare May 21, 2026 15:23
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 2668b28 to 19555d6 Compare May 21, 2026 15:23
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 0967d94 to 0346d91 Compare May 28, 2026 14:03
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 19555d6 to 4881178 Compare May 28, 2026 14:03
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 0346d91 to eb7b8e5 Compare May 29, 2026 08:44
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 4881178 to a5efafe Compare May 29, 2026 08:44
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from eb7b8e5 to a23e4af Compare May 29, 2026 09:08
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from a5efafe to 76a9162 Compare May 29, 2026 09:09
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from a23e4af to ca39e84 Compare June 1, 2026 09:19
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 76a9162 to 4a0dbdb Compare June 1, 2026 09:19
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from ca39e84 to 9956299 Compare June 3, 2026 08:50
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 4a0dbdb to c63cc99 Compare June 3, 2026 08:50
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 9956299 to bef70db Compare June 3, 2026 15:45
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from eda09f1 to 782b1a4 Compare June 9, 2026 08:49
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from d0a9cd8 to 38b3d77 Compare June 9, 2026 10:44
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 782b1a4 to 63bad9b Compare June 9, 2026 10:44
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 38b3d77 to de872c8 Compare June 9, 2026 10:58
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 63bad9b to 894b04f Compare June 9, 2026 10:59
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from de872c8 to 95d4526 Compare June 9, 2026 12:42
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 894b04f to 057e21a Compare June 9, 2026 12:42
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 95d4526 to 13f31af Compare June 9, 2026 14:49
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 057e21a to 8e14e1c Compare June 9, 2026 14:49
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from 13f31af to ca1abe7 Compare June 10, 2026 07:51
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from 8e14e1c to ad25364 Compare June 10, 2026 07:51
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-desktop-swap-transaction-status branch from ca1abe7 to bf743d0 Compare June 10, 2026 07:55
@philipptpunkt philipptpunkt force-pushed the feat/LIVE-29447-mobile-swap-transaction-status branch from ad25364 to 0acadbb Compare June 10, 2026 07:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new global “Swap Transaction Status” drawer to Ledger Live Mobile (LWM), so users can open a swap status UI from swap history rows and from a dedicated deeplink.

Changes:

  • Replace swap-history row navigation to operation details with opening the new swap transaction status drawer.
  • Introduce a new Redux slice (swapTransactionStatusDrawer) and register the drawer in the global drawers registry.
  • Add a new MVVM feature (SwapTransactionStatus) with UI sections (header/status/details), provider metadata fetch, explorer link, and deeplink parsing support.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
apps/ledger-live-mobile/src/screens/Swap/History/OperationRow.tsx Opens the swap status drawer from swap history rows instead of navigating to a details screen.
apps/ledger-live-mobile/src/reducers/types.ts Adds the new drawer slice to the app State type.
apps/ledger-live-mobile/src/reducers/swapTransactionStatusDrawer.ts New Redux slice for swap transaction status drawer open/close and params.
apps/ledger-live-mobile/src/reducers/index.ts Registers the new drawer reducer in the root reducer.
apps/ledger-live-mobile/src/navigation/DeeplinksProvider.tsx Adds handling for swap transaction-status deeplinks and opens the drawer.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/utils.ts Helpers for resolving accounts, formatting amounts/fees, explorer URLs, and display helpers.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/TransactionHeader.tsx Header UI for the drawer (currencies + title + timestamp skeletons).
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/SwapTransactionStatusView.tsx Main drawer content composition (header/status/details + explorer CTA).
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/SwapTransactionStatusHeader.tsx Drawer header with close button + accessibility label.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/SwapTransactionStatusDrawerWrapper.tsx Connects redux drawer state to QueuedDrawer and renders the body.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/SwapTransactionStatusDrawerBody.tsx Hooks up the view model and renders the view.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Status/StatusSection.tsx Status section UI and mapping to display states.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Status/StatusRow.tsx Row UI for each leg (send/receive).
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Status/StatusLine.tsx Vertical connector line UI.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/hooks/useSwapTransactionStatusViewModel.ts Polling + on-chain confirmation signal + optional auto-redirect handling.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Details/ProviderIcon.tsx Renders provider icon from remote SVG URI.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Details/DetailsSection.tsx Details section UI (fees, receive account, provider, swap id + copy).
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Details/DetailRow.tsx Reusable label/value row.
apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/Details/CopyIconButton.tsx Copy swap id button + “Copied” feedback modal.
apps/ledger-live-mobile/src/locales/en/common.json Adds i18n strings for the new swap transaction status modal/drawer.
apps/ledger-live-mobile/src/GlobalDrawers/registry.ts Registers the new swap transaction status drawer (and also adds GenericAwarenessModal drawer).

Comment thread apps/ledger-live-mobile/src/GlobalDrawers/registry.ts Outdated
@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

⚠️ E2E tests are required

Changes detected require e2e testing before merge (even before asking for any review).

📱 Mobile

-> Run Mobile E2E

  • Select "Run workflow"
  • Branch: feat/LIVE-29447-mobile-swap-transaction-status
  • Device: nanoX

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 33 out of 33 changed files in this pull request and generated 2 comments.

Comment thread apps/ledger-live-mobile/src/mvvm/features/SwapTransactionStatus/utils/index.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 59 changed files in this pull request and generated 1 comment.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 57 out of 60 changed files in this pull request and generated 1 comment.

Comment thread .changeset/mobile-swap-status-parity.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 59 out of 62 changed files in this pull request and generated 2 comments.

Comment thread .changeset/mobile-swap-status-parity.md

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 70 out of 71 changed files in this pull request and generated 1 comment.

gre-ledger
gre-ledger previously approved these changes Jun 23, 2026

@gre-ledger gre-ledger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK for platform impact (codeowners file)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.

Comment on lines +24 to +31
<Button
appearance="transparent"
size="md"
icon={ExternalLink}
lx={{ width: "full" }}
onPress={() => Linking.openURL(explorerUrl).catch(() => {})}
>
{t("transfer.swap2.modals.transactionStatus.actions.viewInExplorer")}
Comment on lines +140 to +147
return (
<Pressable
onPress={() => Linking.openURL(providerMainUrl).catch(() => {})}
accessibilityRole="link"
>
{providerValue}
</Pressable>
);
"live-mobile": minor
---

Add the LIVE-29443 mobile swap transaction status drawer with provider details, status tracking, and explorer links.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should update this and we usually don't reference the tickets in the user facing changelogs

@LL782 LL782 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay from platfrom (impact CODEOWNERS file)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 1 comment.

"live-mobile": minor
---

Add the LIVE-29443 mobile swap transaction status drawer with provider details, status tracking, and explorer links.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.

Comment on lines +60 to +62
});
});
});
Comment on lines +4233 to +4236
"accessibility": {
"close": "Close",
"copySwapId": "Copy swap ID"
}
"live-mobile": minor
---

Add the LIVE-29443 mobile swap transaction status drawer with provider details, status tracking, and explorer links.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
7.2% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

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

Labels

mobile Has changes in LLM translations Translation files have been touched

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants