getCurrencyMeta static method

CurrencyMeta getCurrencyMeta(
  1. String castTo, {
  2. required String value,
  3. void onChanged(
    1. num? value
    )?,
})

Get the currency meta data

Implementation

static CurrencyMeta getCurrencyMeta(String castTo,
    {required String value, void Function(num? value)? onChanged}) {
  String defaultValue = "";
  String symbol = "";
  CurrencyInputFormatter? formatter;
  switch (castTo) {
    case "currency:gbp":
      symbol = "£";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:usd":
      symbol = "\$";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:vnd":
      symbol = "₫";
      defaultValue = value + " " + symbol;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        trailingSymbol: " " + symbol,
      );
      break;
    case "currency:thb":
      symbol = "฿";
      defaultValue = value + " " + symbol;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        trailingSymbol: " " + symbol,
      );
      break;
    case "currency:twd":
      symbol = "NT\$";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:eur":
      symbol = "€";
      defaultValue = "$value $symbol";
      formatter = CurrencyInputFormatter(
          onValueChange: onChanged, trailingSymbol: " " + symbol);
      break;
    case "currency:myr":
      symbol = "RM";
      defaultValue = "$symbol $value";
      formatter = CurrencyInputFormatter(
          onValueChange: onChanged, leadingSymbol: symbol);
      break;
    case "currency:jpy":
      symbol = "¥";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:aud":
      symbol = "A\$";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:cny":
      symbol = "¥";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:cad":
      symbol = "\$";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:inr":
      symbol = "₹";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:idr":
      symbol = "Rp";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:sgd":
      symbol = "S\$";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:zar":
      symbol = "R";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
    case "currency:pkr":
      symbol = "Rs";
      defaultValue = symbol + value;
      formatter = CurrencyInputFormatter(
        onValueChange: onChanged,
        leadingSymbol: symbol,
      );
      break;
  }

  if (formatter == null) {
    throw Exception("Currency not supported");
  }

  return CurrencyMeta(
      symbol: symbol, formatter: formatter, initialValue: defaultValue);
}