60 lines
1.7 KiB
Dart
60 lines
1.7 KiB
Dart
import 'package:pweb/utils/payment/operation_code.dart';
|
|
|
|
import 'package:pweb/generated/i18n/app_localizations.dart';
|
|
|
|
|
|
String resolveOperationTitle(AppLocalizations loc, String? code) {
|
|
final pair = parseOperationCodePair(code);
|
|
if (pair == null) return '-';
|
|
|
|
final operation = _localizedOperation(loc, pair.operation);
|
|
final action = _localizedAction(loc, pair.action);
|
|
return loc.paymentOperationPair(operation, action);
|
|
}
|
|
|
|
String _localizedOperation(AppLocalizations loc, String operation) {
|
|
switch (operation) {
|
|
case 'card_payout':
|
|
return loc.paymentOperationCardPayout;
|
|
case 'crypto':
|
|
return loc.paymentOperationCrypto;
|
|
case 'settlement':
|
|
return loc.paymentOperationSettlement;
|
|
case 'ledger':
|
|
return loc.paymentOperationLedger;
|
|
default:
|
|
return _humanizeToken(operation);
|
|
}
|
|
}
|
|
|
|
String _localizedAction(AppLocalizations loc, String action) {
|
|
switch (action) {
|
|
case 'send':
|
|
return loc.paymentOperationActionSend;
|
|
case 'observe':
|
|
return loc.paymentOperationActionObserve;
|
|
case 'fx_convert':
|
|
return loc.paymentOperationActionFxConvert;
|
|
case 'credit':
|
|
return loc.paymentOperationActionCredit;
|
|
case 'block':
|
|
return loc.paymentOperationActionBlock;
|
|
case 'debit':
|
|
return loc.paymentOperationActionDebit;
|
|
case 'release':
|
|
return loc.paymentOperationActionRelease;
|
|
case 'move':
|
|
return loc.paymentOperationActionMove;
|
|
default:
|
|
return _humanizeToken(action);
|
|
}
|
|
}
|
|
|
|
String _humanizeToken(String token) {
|
|
final parts = token.split('_').where((part) => part.isNotEmpty).toList();
|
|
if (parts.isEmpty) return token;
|
|
return parts
|
|
.map((part) => '${part[0].toUpperCase()}${part.substring(1)}')
|
|
.join(' ');
|
|
}
|