Skip to content

feat: send flow design updates v59#488

Merged
pwltr merged 3 commits intomasterfrom
feat/send-v59
Mar 27, 2026
Merged

feat: send flow design updates v59#488
pwltr merged 3 commits intomasterfrom
feat/send-v59

Conversation

@pwltr
Copy link
Copy Markdown
Contributor

@pwltr pwltr commented Mar 12, 2026

Description

This PR updates the send flow to conform with the new design update v59.

  • add camera permission UI
  • add button to hide/show details on confirm screen
  • add ability to switch payment method (savings/spending) on confirm screen
  • change custom fee rate to default to fee rate set in transaction speed settings, fall back to slow
  • show relative date time for invoice expiry
  • add image animation for swiper
  • refactoring and cleanup

Screenshot / Video

Simulator Screenshot - iPhone 17 - 2026-03-12 at 12 52 00
Simulator.Screen.Recording.-.iPhone.17.-.2026-03-18.at.09.25.13.mov
Simulator.Screen.Recording.-.iPhone.17.-.2026-03-24.at.11.59.19.mov

@pwltr pwltr force-pushed the feat/send-v59 branch 2 times, most recently from dbadff3 to 3ec9820 Compare March 12, 2026 22:02
@pwltr pwltr self-assigned this Mar 13, 2026
@pwltr pwltr added this to the 2.2.0 milestone Mar 13, 2026
@pwltr pwltr marked this pull request as ready for review March 18, 2026 08:33
@claude

This comment has been minimized.

@pwltr
Copy link
Copy Markdown
Contributor Author

pwltr commented Mar 23, 2026

@piotr-iohk E2E tests seem to not pass onboarding for some reason

@piotr-iohk
Copy link
Copy Markdown
Collaborator

@piotr-iohk E2E tests seem to not pass onboarding for some reason

It was probably the update screen, merging in master should hopefully resolve it 🤞

@piotr-iohk
Copy link
Copy Markdown
Collaborator

It was also "camera permissions alert" that was blocking (should be handled now).
The other thing is that the alert (if not accepted or denied) stays displayed even if the app gets terminated, doesn't look like this would be expected?

Screen.Recording.2026-03-23.at.17.40.04.mov

@pwltr
Copy link
Copy Markdown
Contributor Author

pwltr commented Mar 23, 2026

It was also "camera permissions alert" that was blocking (should be handled now). The other thing is that the alert (if not accepted or denied) stays displayed even if the app gets terminated, doesn't look like this would be expected?

Screen.Recording.2026-03-23.at.17.40.04.mov

For me it doesn't let me terminate the app while this dialog is showing on the simulator or device. Maybe something e2e specific? Is the app crashing or why is it terminated?

@piotr-iohk
Copy link
Copy Markdown
Collaborator

It was also "camera permissions alert" that was blocking (should be handled now). The other thing is that the alert (if not accepted or denied) stays displayed even if the app gets terminated, doesn't look like this would be expected?
Screen.Recording.2026-03-23.at.17.40.04.mov

For me it doesn't let me terminate the app while this dialog is showing on the simulator or device. Maybe something e2e specific? Is the app crashing or why is it terminated?

Yes, it doesn't let the app terminate. (In the recording I terminated it with xcrun simctl terminate booted to.bitkit). It might affect e2e tests in a way if certain test misses hitting Allow (or somehow fails on that screen), then all the subsequent tests are blocked by this window, even though new instance of the app is started every time.

@pwltr
Copy link
Copy Markdown
Contributor Author

pwltr commented Mar 23, 2026

It was also "camera permissions alert" that was blocking (should be handled now). The other thing is that the alert (if not accepted or denied) stays displayed even if the app gets terminated, doesn't look like this would be expected?
Screen.Recording.2026-03-23.at.17.40.04.mov

For me it doesn't let me terminate the app while this dialog is showing on the simulator or device. Maybe something e2e specific? Is the app crashing or why is it terminated?

Yes, it doesn't let the app terminate. (In the recording I terminated it with xcrun simctl terminate booted to.bitkit). It might affect e2e tests in a way if certain test misses hitting Allow (or somehow fails on that screen), then all the subsequent tests are blocked by this window, even though new instance of the app is started every time.

There is not much we can do to prevent this, this dialog is entirely managed by the operating system, I guess that is also why it stays there even if the app that called the API is terminated. Do you think it is better to skip asking for camera permission in e2e tests?

@piotr-iohk
Copy link
Copy Markdown
Collaborator

There is not much we can do to prevent this, this dialog is entirely managed by the operating system, I guess that is also why it stays there even if the app that called the API is terminated. Do you think it is better to skip asking for camera permission in e2e tests?

I think let's keep it as is. Will try to handle this on e2e side.

@pwltr pwltr force-pushed the feat/send-v59 branch 3 times, most recently from b59ce82 to 374245d Compare March 24, 2026 11:01
Copy link
Copy Markdown

@claude claude bot left a comment

Choose a reason for hiding this comment

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

Code review

Found 3 CLAUDE.md compliance issues.

@pwltr pwltr requested a review from jvsena42 March 24, 2026 16:26
@pwltr
Copy link
Copy Markdown
Contributor Author

pwltr commented Mar 24, 2026

@piotr-iohk Still not sure why e2e tests are failing. If there is anything I should try let me know.

Otherwise this is ready for review.

@piotr-iohk
Copy link
Copy Markdown
Collaborator

There's a regression from e2e tests.
On editing the invoice - the amount of first invoice is remembered.

  • Send, paste invoice with encoded amount 556 and Continuelnbcrt5560n1p5u854npp5va4jd9chvqp2es7r3tekzrhujw5vggjl8evmra2xcguyeag0dynsdqqcqzzsxqyz5vqsp5m0gkl85twjyddjmq9t7tew5lxehdnmjtry52d6er2nuul2cnmrjq9qxpqysgq2d4jdufqcuevmwn8npnf29se5y5g7hm0llg45ceazy3npg59ntmqe89uuwrrz2urf9exdlxh669z3nf9kn2tra2ky54ttjyh8s02mccq3wdr2g
  • Show details > tap on address, paste invoice with amount 557 lnbcrt5570n1p5u85kfpp5kx6l8kcdjuggd5x4p4g5rqwpl53xvrgqladr95u3xy2fdcw5ywnsdqqcqzzsxqyz5vqsp5n8rw7swsnqvjnsjdjk4s9ctlyc2cwln5zwcp5q0md3dg5anfzlzq9qxpqysgqm46et4u68r7yhauhy2rajv6utf2z5jx0xe9gl4pn3m835a4mha7840rn6wx0gv2xsra38aj5k47rregvc77z3c3ka8rnssyrdxd7ysgp4420gy
  • Continue (see the old amount)
    Note: also the case you edit invoice to onchain address, the amt from invoice is preserved.
Screen.Recording.2026-03-25.at.13.21.13.mov

I noticed one small issue, which seems to be pre-existing, but perhaps could be also handled.

  • enter address > continue > go back -> address is not preserved.
Screen.Recording.2026-03-25.at.13.42.39.mov

@pwltr
Copy link
Copy Markdown
Contributor Author

pwltr commented Mar 25, 2026

All feedback should be addressed in 0f5b926

Simulator.Screen.Recording.-.iPhone.17.-.2026-03-25.at.15.26.31.mov

@pwltr pwltr requested a review from jvsena42 March 26, 2026 08:40
Copy link
Copy Markdown
Member

@jvsena42 jvsena42 left a comment

Choose a reason for hiding this comment

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

Testes on emulator:

  • onChain
  • Lightning
  • Unified
  • Unified + invalid amounts for on-chain Lighting
  • Custom fee
  • Swap Bettwen spending/saving on transaction detail screen
  • BG ima animation when swiping

Copy link
Copy Markdown
Collaborator

@piotr-iohk piotr-iohk left a comment

Choose a reason for hiding this comment

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

tACK

@pwltr pwltr merged commit 183f5c1 into master Mar 27, 2026
13 checks passed
@pwltr pwltr deleted the feat/send-v59 branch March 27, 2026 09:21
@ovitrif
Copy link
Copy Markdown
Collaborator

ovitrif commented Mar 27, 2026

Some Send Sheet Screen transitions have too many glitches when navigating back and forth:

sendscreens_1.5x.mp4

Pls see if there's a way to improve some of the screen transitions, not all are glitchy though.

cc. @pwltr (because PR is merged already)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants