handleGetVariantValue method

Future handleGetVariantValue(
  1. MethodCall call
)

Implementation

Future<dynamic> handleGetVariantValue(MethodCall call) async {
  Map<Object?, Object?> args = call.arguments as Map<Object?, Object?>;
  String flagName = args['flagName'] as String;
  dynamic fallbackValue = args['fallbackValue'];

  JSAny? fallbackJs = safeJsify({
    'key': flagName,
    'value': fallbackValue,
  });

  try {
    JSPromise promise = flags_get_variant(flagName, fallbackJs);
    JSAny? jsResult = await promise.toDart;
    Map<String, dynamic> variant = _jsVariantToMap(jsResult, {'key': flagName, 'value': fallbackValue});
    return variant['value'] ?? fallbackValue;
  } catch (e) {
    debugPrint('[Mixpanel] getVariantValue failed with error: $e, returning fallback');
    return fallbackValue;
  }
}