@@ -12,7 +12,14 @@ import 'package:threebotlogin/widgets/market/wallet_selection.dart';
1212import 'package:threebotlogin/services/stellar_service.dart' as Stellar;
1313
1414class OverviewWidget extends ConsumerStatefulWidget {
15- const OverviewWidget ({super .key});
15+ final Wallet ? selectedWallet;
16+ final Function (Wallet ) onWalletSelected;
17+
18+ const OverviewWidget ({
19+ super .key,
20+ this .selectedWallet,
21+ required this .onWalletSelected,
22+ });
1623
1724 @override
1825 ConsumerState <OverviewWidget > createState () => _OverviewWidgetState ();
@@ -21,7 +28,6 @@ class OverviewWidget extends ConsumerStatefulWidget {
2128class _OverviewWidgetState extends ConsumerState <OverviewWidget > {
2229 late Timer _timer;
2330 String lastUpdated = '--' ;
24- Wallet ? _selectedWallet;
2531 bool loading = true ;
2632 bool failed = false ;
2733 bool isLoadingWallets = false ;
@@ -42,7 +48,6 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
4248 setState (() {
4349 isLoadingWallets = true ;
4450 loadingWalletsFailed = false ;
45- _selectedWallet = null ;
4651 });
4752 try {
4853 await walletsNotifierRef.list ();
@@ -66,7 +71,6 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
6671 setState (() {
6772 isLoadingWallets = true ;
6873 loadingWalletsFailed = false ;
69- _selectedWallet = null ;
7074 });
7175
7276 final walletsNotifierRef = ref.read (walletsNotifier.notifier);
@@ -342,7 +346,7 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
342346 MainAxisAlignment .spaceBetween,
343347 children: [
344348 Text (
345- _selectedWallet ? .name ??
349+ widget.selectedWallet ? .name ??
346350 'Select Wallet' ,
347351 style: Theme .of (context)
348352 .textTheme
@@ -366,20 +370,20 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
366370 child: SizedBox (
367371 height: 50 ,
368372 child: ElevatedButton (
369- onPressed: _selectedWallet == null
373+ onPressed: widget.selectedWallet == null
370374 ? null
371375 : () async {
372376 Navigator .of (context).push (
373377 MaterialPageRoute (
374378 builder: (context) =>
375379 OrderWidget (
376- selectedWallet:
377- _selectedWallet ! ,
380+ selectedWallet: widget
381+ .selectedWallet ! ,
378382 )));
379383 },
380384 child: Text (
381385 'My Orders' ,
382- style: _selectedWallet == null
386+ style: widget.selectedWallet == null
383387 ? Theme .of (context)
384388 .textTheme
385389 .bodyLarge!
@@ -463,7 +467,7 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
463467 ),
464468 ),
465469 const SizedBox (height: 16 ),
466- if (_selectedWallet != null )
470+ if (widget.selectedWallet != null )
467471 SizedBox (
468472 width: double .infinity,
469473 child: Card (
@@ -497,15 +501,15 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
497501 children: [
498502 _buildMarketColumn (
499503 'TFT Balance' ,
500- _selectedWallet
504+ widget.selectedWallet
501505 ? .stellarBalances['TFT' ]! ),
502506 _buildMarketColumn (
503507 'USDC Balance' ,
504- _selectedWallet
508+ widget.selectedWallet
505509 ? .stellarBalances['USDC' ]! ),
506510 _buildMarketColumn (
507511 'XLM Balance' ,
508- _selectedWallet
512+ widget.selectedWallet
509513 ? .stellarBalances['XLM' ]! ),
510514 ],
511515 ),
@@ -522,18 +526,18 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
522526 child: SizedBox (
523527 width: MediaQuery .of (context).size.width - 40 ,
524528 child: ElevatedButton (
525- onPressed: _selectedWallet == null
529+ onPressed: widget.selectedWallet == null
526530 ? null
527531 : () async {
528532 Navigator .of (context).push (MaterialPageRoute (
529533 builder: (context) => BuyTFTWidget (
530- wallet: _selectedWallet ! ,
534+ wallet: widget.selectedWallet ! ,
531535 edit: false ,
532536 )));
533537 },
534538 child: Text (
535539 'Buy TFT' ,
536- style: _selectedWallet == null
540+ style: widget.selectedWallet == null
537541 ? Theme .of (context)
538542 .textTheme
539543 .bodyLarge!
@@ -655,11 +659,9 @@ class _OverviewWidgetState extends ConsumerState<OverviewWidget> {
655659 }
656660 return WalletSelectionSheet (
657661 wallets: filteredWallets,
658- selectedWallet: _selectedWallet ,
662+ selectedWallet: widget.selectedWallet ,
659663 onWalletSelected: (Wallet wallet) {
660- setState (() {
661- _selectedWallet = wallet;
662- });
664+ widget.onWalletSelected (wallet);
663665 Navigator .pop (context);
664666 },
665667 );
0 commit comments