handleIsEnabled method

Future<bool> handleIsEnabled(
  1. MethodCall call
)

Implementation

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

  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});
    dynamic value = variant['value'];
    if (value is bool) {
      return value;
    }
    if (value != null) {
      debugPrint('[Mixpanel] isEnabled flag \'$flagName\' has non-boolean value, returning fallback');
    }
    return fallbackValue;
  } catch (e) {
    debugPrint('[Mixpanel] isEnabled failed with error: $e, returning fallback');
    return fallbackValue;
  }
}