mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-15 10:12:28 -06:00
fix: Add custom fields, translations, add app logs to login routes
This commit is contained in:
41
lib/core/bloc/my_bloc_observer.dart
Normal file
41
lib/core/bloc/my_bloc_observer.dart
Normal file
@@ -0,0 +1,41 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:paperless_mobile/core/bloc/transient_error.dart';
|
||||
import 'package:paperless_mobile/core/translation/error_code_localization_mapper.dart';
|
||||
import 'package:paperless_mobile/features/logging/data/logger.dart';
|
||||
import 'package:paperless_mobile/helpers/message_helpers.dart';
|
||||
import 'package:paperless_mobile/routing/navigation_keys.dart';
|
||||
|
||||
class MyBlocObserver extends BlocObserver {
|
||||
@override
|
||||
void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
|
||||
if (error is TransientError) {
|
||||
_handleTransientError(bloc, error, stackTrace);
|
||||
}
|
||||
super.onError(bloc, error, stackTrace);
|
||||
}
|
||||
|
||||
void _handleTransientError(
|
||||
BlocBase bloc,
|
||||
TransientError error,
|
||||
StackTrace stackTrace,
|
||||
) {
|
||||
assert(rootNavigatorKey.currentContext != null);
|
||||
final message = switch (error) {
|
||||
TransientPaperlessApiError(code: var code) => translateError(
|
||||
rootNavigatorKey.currentContext!,
|
||||
code,
|
||||
),
|
||||
TransientMessageError(message: var message) => message,
|
||||
};
|
||||
final details = switch (error) {
|
||||
TransientPaperlessApiError(details: var details) => details,
|
||||
_ => null,
|
||||
};
|
||||
|
||||
showSnackBar(
|
||||
rootNavigatorKey.currentContext!,
|
||||
message,
|
||||
details: details,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user