Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New UI for receive payment flows #167

Open
wants to merge 38 commits into
base: main
Choose a base branch
from

Conversation

erdemyerebasmaz
Copy link
Collaborator

@erdemyerebasmaz erdemyerebasmaz commented Sep 9, 2024

This PR unifies receive payment flows under the same page.

Changelist:

  • Unify receive payment methods under same UI d8194ec
    • All receive payment pages are moved under receive_payment dir and ReceivePaymentPage, which takes a pageIndex and displays the selected payment methods page. Renamed files to reflect these changes.
    • UI's are made consistent across all payment pages where possible.
      • All pages now use the same AddressWidget to display payment information.
      • They use similar fee information widgets etc.
    • Dialogs on payment flows are removed or integrated to a fulll page UI as part of their respective flow.
  • Open the bottom sheet menu item via ReceivePaymentPage 3e586b7
  • Remove payment method selector 69a9505

Layout & Theme issues:

  • Do not override ExpiryAndFeeMessage colors on light theme edcc375
  • Move padding to ReceivePayment page 241068a
  • Fix share & copy icon colors 077ded2
  • Fix loader alignment on receive pages 8dc0e40
  • Fix header displacement after QR code loads fc40ccb

Misc:

  • Added Breez icon to QR image
  • Replace hardcoded messages from Breez-Translations d7e6b25
  • Add helper methods for readability d46d4da
    • These will be extracted into their own widgets

TODO:

  • Track payments and close the payment information to display bubble animation on home page when the payment is received 35db836

@erdemyerebasmaz erdemyerebasmaz force-pushed the receive_payment_new_ui branch 3 times, most recently from 6a9135b to 4802ff2 Compare September 9, 2024 11:44
@erdemyerebasmaz erdemyerebasmaz linked an issue Sep 9, 2024 that may be closed by this pull request
@erdemyerebasmaz erdemyerebasmaz force-pushed the receive_payment_new_ui branch 7 times, most recently from c5052bc to dcb9253 Compare September 10, 2024 15:36
@erdemyerebasmaz erdemyerebasmaz marked this pull request as ready for review September 11, 2024 10:51
@erdemyerebasmaz erdemyerebasmaz force-pushed the receive_payment_new_ui branch 5 times, most recently from 58afa9f to 818e8c4 Compare September 16, 2024 13:46
@erdemyerebasmaz erdemyerebasmaz linked an issue Sep 17, 2024 that may be closed by this pull request
@erdemyerebasmaz
Copy link
Collaborator Author

erdemyerebasmaz commented Sep 17, 2024

@dangeross New changes since last review:

Payment tracking & successful payment animation:

  • Track payments and pop to home page to display bubble animation on receiving payment
  • Only track incoming payments
  • Fade out the bubble animation and pop the SuccessfulPaymentRoute
  • Display payment received message upon receiving a payment
  • Added comments for flip transition animation
  • Removed didUpdateWidget to avoid displaying FlipTransition twice
  • Make time comparison more accurate for FlipTransition

DestinationWidget:

  • Refactored AddressWidget
  • Add padding to payment limits message box loader
  • Renamed and moved address widget folders

LNURL payment:

  • Display errors for LNURL payments that fall below payment limits
  • Fix the minimum value pasted on clicking limits label on LNURL payment page
  • Use domain from LnUrlPayRequestData on it's title

LNURL Withdraw:

  • Support LNURL Withdraw with new UI
  • Created a dedicated LnUrl Withdraw page
  • Display errors for URLs recognized through QR scanner
  • Fix amount auto focus on LnUrlWithdrawPage
  • Remove LnUrlWithdraw logic from ReceiveLightningPaymentPage

These will be extracted into their own widgets
Remove ExpiryAndFeeMessage & LnAddressFeeMessage widgets
Replace TransparentPageRoute with PageRouteBuilder.
TODO: Create a dedicated page for LNURL Withdraw with extensions on request data & pre-process the payment to see if it's within payment limits before opening the page.
- Wait for ln limits to be fetched on opening LnUrlWithdrawPage & LnUrlPaymentPage
- Rename LNURLPaymentPage to LnUrlPaymentPage
- Apply LnUrlPaymentPage payment limit & error handling logic on LnUrlWithdrawPage
- Simplified LnUrlWithdrawPage
- Removed redundant BlocBuilder's & unused receivePaymentResponse, prepareResponse logic.
- Rename LnUrlPayRequestData variable named data to requestData.
- Add KeyboardDoneAction on LnUrlPaymentPage
- Make the widgets on both LnUrl pages more consistent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants