refactor of money utils with new money2 package

This commit is contained in:
Arseni
2026-03-13 03:17:29 +03:00
parent b4eb1437f6
commit 0091191d97
72 changed files with 453 additions and 982 deletions

View File

@@ -1,96 +1,27 @@
import 'package:flutter/widgets.dart';
import 'package:pshared/models/asset.dart';
import 'package:pshared/models/money.dart';
import 'package:money2/money2.dart';
import 'package:pshared/utils/currency.dart';
import 'package:pshared/utils/money.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
String unavailableMoneyValue(BuildContext context) {
return AppLocalizations.of(context)!.valueUnavailable;
}
String unavailableMoneyValueFromL10n(AppLocalizations l10n) {
return l10n.valueUnavailable;
}
String formatMoneyUi(
BuildContext context,
Money? money, {
String separator = ' ',
}) {
return formatMoneyUiWithL10n(
AppLocalizations.of(context)!,
money,
separator: separator,
);
}
String formatMoneyUiWithL10n(
AppLocalizations l10n,
Money? money, {
String separator = ' ',
}) {
final unavailableValue = unavailableMoneyValueFromL10n(l10n);
return formatMoneyDisplay(
money,
fallback: unavailableValue,
invalidAmountFallback: unavailableValue,
separator: separator,
);
String formatMoneyUi(BuildContext context, Money? money) {
final l10n = AppLocalizations.of(context)!;
if (money == null) return l10n.valueUnavailable;
return money.toString();
}
String formatAmountUi(
BuildContext context, {
required double amount,
required String currency,
String separator = ' ',
}) {
return formatAmountUiWithL10n(
AppLocalizations.of(context)!,
amount: amount,
currency: currency,
separator: separator,
);
}
final l10n = AppLocalizations.of(context)!;
final moneyCurrency = money2CurrencyFromCode(currency);
if (moneyCurrency == null) return l10n.valueUnavailable;
String formatAmountUiWithL10n(
AppLocalizations l10n, {
required double amount,
required String currency,
String separator = ' ',
}) {
return formatMoneyUiWithL10n(
l10n,
Money(amount: amountToString(amount), currency: currency),
separator: separator,
);
}
String formatAssetUi(
BuildContext context,
Asset? asset, {
String separator = ' ',
}) {
return formatAssetUiWithL10n(
AppLocalizations.of(context)!,
asset,
separator: separator,
);
}
String formatAssetUiWithL10n(
AppLocalizations l10n,
Asset? asset, {
String separator = ' ',
}) {
if (asset == null) return unavailableMoneyValueFromL10n(l10n);
return formatAmountUiWithL10n(
l10n,
amount: asset.amount,
currency: currencyCodeToString(asset.currency),
separator: separator,
);
final money = Money.fromNumWithCurrency(amount, moneyCurrency);
return money.toString();
}