[LWM] feat(LIVE-29443): add mobile swap status drawer#17458
[LWM] feat(LIVE-29443): add mobile swap status drawer#17458philipptpunkt wants to merge 1 commit into
Conversation
Web Tools Build Status
|
Rsdoctor Bundle Diff AnalysisFound 7 projects in monorepo, 7 projects with changes. 📊 Quick Summary
📋 Detailed Reports (Click to expand)📁 desktop-mainPath:
📁 desktop-preloaderPath:
📁 desktop-rendererPath:
📁 desktop-webviewDappPreloaderPath:
📁 desktop-workersPath:
📁 desktop-webviewPreloaderPath:
📁 mobilePath:
Generated by Rsdoctor GitHub Action |
e8b59b7 to
3f966b3
Compare
11ca267 to
1310fe2
Compare
3f966b3 to
cf60133
Compare
1310fe2 to
2668b28
Compare
cf60133 to
0967d94
Compare
2668b28 to
19555d6
Compare
0967d94 to
0346d91
Compare
19555d6 to
4881178
Compare
0346d91 to
eb7b8e5
Compare
4881178 to
a5efafe
Compare
eb7b8e5 to
a23e4af
Compare
a5efafe to
76a9162
Compare
a23e4af to
ca39e84
Compare
76a9162 to
4a0dbdb
Compare
ca39e84 to
9956299
Compare
4a0dbdb to
c63cc99
Compare
9956299 to
bef70db
Compare
eda09f1 to
782b1a4
Compare
d0a9cd8 to
38b3d77
Compare
782b1a4 to
63bad9b
Compare
38b3d77 to
de872c8
Compare
63bad9b to
894b04f
Compare
de872c8 to
95d4526
Compare
894b04f to
057e21a
Compare
95d4526 to
13f31af
Compare
057e21a to
8e14e1c
Compare
13f31af to
ca1abe7
Compare
8e14e1c to
ad25364
Compare
ca1abe7 to
bf743d0
Compare
ad25364 to
0acadbb
Compare
There was a problem hiding this comment.
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). |
|
gre-ledger
left a comment
There was a problem hiding this comment.
OK for platform impact (codeowners file)
| <Button | ||
| appearance="transparent" | ||
| size="md" | ||
| icon={ExternalLink} | ||
| lx={{ width: "full" }} | ||
| onPress={() => Linking.openURL(explorerUrl).catch(() => {})} | ||
| > | ||
| {t("transfer.swap2.modals.transactionStatus.actions.viewInExplorer")} |
| 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. |
There was a problem hiding this comment.
We should update this and we usually don't reference the tickets in the user facing changelogs
LL782
left a comment
There was a problem hiding this comment.
Okay from platfrom (impact CODEOWNERS file)
| "live-mobile": minor | ||
| --- | ||
|
|
||
| Add the LIVE-29443 mobile swap transaction status drawer with provider details, status tracking, and explorer links. |
| }); | ||
| }); | ||
| }); |
| "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. |
|


Jira: https://ledgerhq.atlassian.net/browse/LIVE-29443
Summary
Review Scope
@ledgerhq/ptxfor the swap transaction status feature and swap screen entry points.@ledgerhq/wallet-xpfor Mobile drawer integration and shared Mobile app wiring.NotificationsPromptSwapFlow.test.tsxis Engagement-owned but included here as a mechanical test update tied to the new drawer behavior.Validation
PendingOperationfocused test passed.NotificationsPromptSwapFlowintegration test passed.Stack (managed by stac-man)