handleIsEnabled method
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;
}
}