import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/controllers/balance_mask/wallets.dart'; import 'package:pshared/models/payment/wallet.dart'; import 'package:pshared/models/payment/chain_network.dart'; import 'package:pshared/utils/l10n/chain.dart'; import 'package:pweb/pages/dashboard/buttons/balance/add_funds.dart'; import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; import 'package:pweb/pages/dashboard/buttons/balance/config.dart'; import 'package:pweb/pages/dashboard/buttons/balance/header.dart'; import 'package:pweb/widgets/refresh_balance/wallet.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; class WalletCard extends StatelessWidget { final Wallet wallet; final VoidCallback onTopUp; const WalletCard({ super.key, required this.wallet, required this.onTopUp, }); @override Widget build(BuildContext context) { final loc = AppLocalizations.of(context)!; final networkLabel = (wallet.network == null || wallet.network == ChainNetwork.unspecified) ? null : wallet.network!.localizedName(context); final symbol = wallet.tokenSymbol?.trim(); return Card( color: Theme.of(context).colorScheme.onSecondary, elevation: WalletCardConfig.elevation, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(WalletCardConfig.borderRadius), ), child: SizedBox.expand( child: Padding( padding: WalletCardConfig.contentPadding, child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ BalanceHeader( title: loc.paymentTypeCryptoWallet, subtitle: networkLabel, badge: (symbol == null || symbol.isEmpty) ? null : symbol, ), Row( children: [ BalanceAmount( wallet: wallet, onToggleMask: () { context.read().toggleBalanceMask(wallet.id); }, ), WalletBalanceRefreshButton( walletRef: wallet.id, ), ], ), BalanceAddFunds(onTopUp: onTopUp), ], ), ), ), ); } }