Files
sendico/frontend/pweb/lib/controllers/dashboard/balance/source_copy.dart
Arseni 0172176978 fixes
2026-03-11 18:26:21 +03:00

42 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
class BalanceCopyState {
final String label;
final String payload;
const BalanceCopyState({required this.label, required this.payload});
bool get canCopy => payload.trim().isNotEmpty;
}
class BalanceSourceCopyController {
const BalanceSourceCopyController();
BalanceCopyState wallet(BuildContext context, String? depositAddress) =>
_buildCopyAddressState(context, depositAddress);
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() ?? '',
);
}
}