Files
sendico/frontend/pweb/lib/pages/wallet_top_up/content.dart
2025-12-12 13:45:58 +01:00

78 lines
2.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:pshared/utils/currency.dart';
import 'package:pweb/models/wallet.dart';
import 'package:pweb/pages/wallet_top_up/details.dart';
import 'package:pweb/pages/wallet_top_up/header.dart';
import 'package:pweb/pages/wallet_top_up/meta.dart';
import 'package:pweb/utils/dimensions.dart';
class WalletTopUpContent extends StatelessWidget {
final Wallet wallet;
final VoidCallback onBack;
const WalletTopUpContent({
super.key,
required this.wallet,
required this.onBack,
});
@override
Widget build(BuildContext context) {
final dimensions = AppDimensions();
final theme = Theme.of(context);
final address = _resolveAddress(wallet);
final network = wallet.network?.trim();
final assetLabel = wallet.tokenSymbol ?? currencyCodeToSymbol(wallet.currency);
return Align(
alignment: Alignment.topCenter,
child: SingleChildScrollView(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 960),
child: Padding(
padding: EdgeInsets.symmetric(vertical: dimensions.paddingLarge),
child: Material(
elevation: dimensions.elevationSmall,
color: theme.colorScheme.onSecondary,
borderRadius: BorderRadius.circular(dimensions.borderRadiusMedium),
child: Padding(
padding: EdgeInsets.all(dimensions.paddingXLarge),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
WalletTopUpHeader(
onBack: onBack,
walletName: wallet.name,
),
SizedBox(height: dimensions.paddingLarge),
WalletTopUpMeta(
assetLabel: assetLabel,
network: network,
walletId: wallet.walletUserID,
),
SizedBox(height: dimensions.paddingXLarge),
WalletTopUpDetails(
address: address,
dimensions: dimensions,
),
],
),
),
),
),
),
),
);
}
String? _resolveAddress(Wallet wallet) {
final candidate = wallet.depositAddress?.trim();
if (candidate == null || candidate.isEmpty) return null;
return candidate;
}
}