This commit is contained in:
Arseni
2026-03-11 18:26:21 +03:00
parent fdd8dd8845
commit 0172176978
46 changed files with 678 additions and 643 deletions

View File

@@ -91,16 +91,22 @@ class BalanceSourceActionsController {
}
void _openWalletOperationHistory(BuildContext context, String walletRef) {
context.read<PaymentSourceController>().selectWalletByRef(walletRef);
context.pushNamed(PayoutRoutes.editWallet);
_withSelectedWallet(
context,
walletRef,
() => context.pushNamed(PayoutRoutes.editWallet),
);
}
void _sendWalletPayout(BuildContext context, String walletRef) {
context.read<PaymentSourceController>().selectWalletByRef(walletRef);
context.pushNamed(
PayoutRoutes.payment,
queryParameters: PayoutRoutes.buildQueryParameters(
paymentType: PaymentType.wallet,
_withSelectedWallet(
context,
walletRef,
() => context.pushNamed(
PayoutRoutes.payment,
queryParameters: PayoutRoutes.buildQueryParameters(
paymentType: PaymentType.wallet,
),
),
);
}
@@ -114,4 +120,13 @@ class BalanceSourceActionsController {
),
);
}
void _withSelectedWallet(
BuildContext context,
String walletRef,
VoidCallback action,
) {
context.read<PaymentSourceController>().selectWalletByRef(walletRef);
action();
}
}

View File

@@ -1,5 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
class BalanceCopyState {
final String label;
@@ -13,23 +16,26 @@ class BalanceCopyState {
class BalanceSourceCopyController {
const BalanceSourceCopyController();
BalanceCopyState wallet(String? depositAddress) {
return BalanceCopyState(
label: 'Copy Deposit Address',
payload: depositAddress?.trim() ?? '',
);
}
BalanceCopyState wallet(BuildContext context, String? depositAddress) =>
_buildCopyAddressState(context, depositAddress);
BalanceCopyState ledger(String? accountCode) {
return BalanceCopyState(
label: 'Copy Deposit Address',
payload: accountCode?.trim() ?? '',
);
}
BalanceCopyState ledger(BuildContext context, String? accountCode) =>
_buildCopyAddressState(context, accountCode);
Future<bool> copy(BalanceCopyState state) async {
if (!state.canCopy) return false;
await Clipboard.setData(ClipboardData(text: state.payload));
return true;
}
BalanceCopyState _buildCopyAddressState(
BuildContext context,
String? payload,
) {
final l10n = AppLocalizations.of(context)!;
return BalanceCopyState(
label: l10n.copyAddress,
payload: payload?.trim() ?? '',
);
}
}