All checks were successful
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/bff Pipeline was successful
ci/woodpecker/push/discovery Pipeline was successful
ci/woodpecker/push/fx_ingestor Pipeline was successful
ci/woodpecker/push/fx_oracle Pipeline was successful
ci/woodpecker/push/frontend Pipeline was successful
ci/woodpecker/push/gateway_mntx Pipeline was successful
ci/woodpecker/push/gateway_chain Pipeline was successful
ci/woodpecker/push/gateway_tgsettle Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
ci/woodpecker/push/ledger Pipeline was successful
ci/woodpecker/push/notification Pipeline was successful
ci/woodpecker/push/payments_orchestrator Pipeline was successful
47 lines
1.3 KiB
Dart
47 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:pshared/provider/ledger.dart';
|
|
|
|
import 'package:pweb/models/visibility.dart';
|
|
import 'package:pweb/widgets/refresh_balance/button.dart';
|
|
|
|
import 'package:pweb/generated/i18n/app_localizations.dart';
|
|
|
|
|
|
class LedgerBalanceRefreshButton extends StatelessWidget {
|
|
final String ledgerAccountRef;
|
|
final VisibilityState iconOnly;
|
|
final double iconSize = 18;
|
|
|
|
const LedgerBalanceRefreshButton({
|
|
super.key,
|
|
required this.ledgerAccountRef,
|
|
this.iconOnly = VisibilityState.visible,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final ledgerProvider = context.watch<LedgerAccountsProvider>();
|
|
final loc = AppLocalizations.of(context)!;
|
|
final isBusy = ledgerProvider.isWalletRefreshing(ledgerAccountRef) || ledgerProvider.isLoading;
|
|
final hasTarget = ledgerProvider.accounts.any((a) => a.ledgerAccountRef == ledgerAccountRef);
|
|
|
|
void refresh() {
|
|
final provider = context.read<LedgerAccountsProvider>();
|
|
provider.refreshBalance(ledgerAccountRef);
|
|
}
|
|
|
|
return BalanceRefreshButton(
|
|
isBusy: isBusy,
|
|
enabled: hasTarget,
|
|
onPressed: refresh,
|
|
iconOnly: iconOnly,
|
|
label: loc.refreshBalance,
|
|
tooltip: loc.refreshBalance,
|
|
iconSize: iconSize,
|
|
);
|
|
}
|
|
}
|