97 lines
2.1 KiB
Dart
97 lines
2.1 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
|
|
import 'package:pshared/models/asset.dart';
|
|
import 'package:pshared/models/money.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 formatAmountUi(
|
|
BuildContext context, {
|
|
required double amount,
|
|
required String currency,
|
|
String separator = ' ',
|
|
}) {
|
|
return formatAmountUiWithL10n(
|
|
AppLocalizations.of(context)!,
|
|
amount: amount,
|
|
currency: currency,
|
|
separator: separator,
|
|
);
|
|
}
|
|
|
|
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,
|
|
);
|
|
}
|