Add sentry provider observer

This commit is contained in:
problematicconsumer
2023-09-20 12:42:06 +03:30
parent c768053108
commit 691dc16409
5 changed files with 53 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
class SentryRiverpodObserver extends ProviderObserver {
void addBreadcrumb(String message, {Map<String, dynamic>? data}) {
Sentry.addBreadcrumb(
Breadcrumb(
category: "Provider",
message: message,
data: data,
),
);
}
@override
void didAddProvider(
ProviderBase<Object?> provider,
Object? value,
ProviderContainer container,
) {
super.didAddProvider(provider, value, container);
addBreadcrumb(
'Provider [${provider.name ?? provider.runtimeType}] was ADDED',
data: value != null ? {"initial-value": value} : null,
);
}
@override
void didUpdateProvider(
ProviderBase<Object?> provider,
Object? previousValue,
Object? newValue,
ProviderContainer container,
) {
super.didUpdateProvider(provider, previousValue, newValue, container);
addBreadcrumb(
'Provider [${provider.name ?? provider.runtimeType}] was UPDATED',
data: {
"new-value": newValue,
"old-value": previousValue,
},
);
}
}

View File

@@ -11,6 +11,7 @@ export 'number_formatters.dart';
export 'placeholders.dart';
export 'platform_utils.dart';
export 'sentry_loggy_integration.dart';
export 'sentry_riverpod_observer.dart';
export 'text_utils.dart';
export 'uri_utils.dart';
export 'validators.dart';