Add sentry provider observer
This commit is contained in:
44
lib/utils/sentry_riverpod_observer.dart
Normal file
44
lib/utils/sentry_riverpod_observer.dart
Normal 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,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user