feat: Swap flow for Pay Anything. (#2489)

* feat: Swap flow for Pay Anything. [WIP]

* feat: Pay Anything Swap Flow [WIP]

* feat: Pay anything swap flow [WIP]
- Add fiat values for send and receive amounts to swap details confirmation bottomsheet

* feat: Pay anything swap flow [WIP]
- Switch exchangeviewmodel back to factory
- Expand address box to fill width

* Handle second swipe to swap cta

* Add fiat for receive amount

* Scope Observers for bottomsheets and add validator

* fix: Repeated instances issue for exchangeVM

* fix: Estimated fee and balance not correctly updating after wallet switching occurs

* fix: Available balance not updating properly after wallet switching

* Fix: Give wallet some time to open before populating send info

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
David Adegoke
2025-09-06 19:16:56 +03:00
committed by GitHub
co-authored by OmarHatem
parent 31b9bb7f53
commit d1b62f2664
13 changed files with 1281 additions and 97 deletions
@@ -11,6 +11,8 @@ class StandardSlideButton extends StatefulWidget {
this.height = 48.0,
required this.currentTheme,
required this.accessibleNavigationModeButtonText,
this.tileBackgroundColor,
this.knobColor,
}) : super(key: key);
final VoidCallback onSlideComplete;
@@ -18,7 +20,9 @@ class StandardSlideButton extends StatefulWidget {
final double height;
final MaterialThemeBase currentTheme;
final String accessibleNavigationModeButtonText;
final Color? tileBackgroundColor;
final Color? knobColor;
@override
StandardSlideButtonState createState() => StandardSlideButtonState();
}
@@ -57,7 +61,7 @@ class StandardSlideButtonState extends State<StandardSlideButton> {
height: widget.height,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: tileBackgroundColor,
color: widget.tileBackgroundColor ?? tileBackgroundColor,
),
child: Stack(
alignment: Alignment.centerLeft,
@@ -97,7 +101,7 @@ class StandardSlideButtonState extends State<StandardSlideButton> {
height: widget.height - 8,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Theme.of(context).colorScheme.surface,
color: widget.knobColor ?? Theme.of(context).colorScheme.surface,
),
alignment: Alignment.center,
child: Icon(