Merge pull request #402 from pangeachat/blue-error-handling

error handling for error found by blue
pull/1384/head
ggurdin 1 year ago committed by GitHub
commit 35d909d3cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -8,6 +8,11 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:sentry_flutter/sentry_flutter.dart';
class PangeaWarningError implements Exception {
final String message;
PangeaWarningError(message) : message = "Pangea Warning Error: $message";
}
class ErrorHandler { class ErrorHandler {
ErrorHandler(); ErrorHandler();

@ -57,20 +57,28 @@ class PangeaRichTextState extends State<PangeaRichText> {
} }
void _setTextSpan(String newTextSpan) { void _setTextSpan(String newTextSpan) {
widget.toolbarController?.toolbar?.textSelection.setMessageText( try {
newTextSpan, if (!mounted) return; // Early exit if the widget is no longer in the tree
);
if (mounted) { widget.toolbarController?.toolbar?.textSelection.setMessageText(
newTextSpan,
);
setState(() { setState(() {
textSpan = newTextSpan; textSpan = newTextSpan;
}); });
} catch (error, stackTrace) {
ErrorHandler.logError(
e: PangeaWarningError(error),
s: stackTrace,
m: "Error setting text span in PangeaRichText",
);
} }
} }
void setTextSpan() { void setTextSpan() {
if (_fetchingRepresentation == true) { if (_fetchingRepresentation) {
_setTextSpan( _setTextSpan(
textSpan = widget.pangeaMessageEvent.event widget.pangeaMessageEvent.event
.getDisplayEvent(widget.pangeaMessageEvent.timeline) .getDisplayEvent(widget.pangeaMessageEvent.timeline)
.body, .body,
); );
@ -91,13 +99,17 @@ class PangeaRichTextState extends State<PangeaRichText> {
setState(() => _fetchingRepresentation = true); setState(() => _fetchingRepresentation = true);
widget.pangeaMessageEvent widget.pangeaMessageEvent
.representationByLanguageGlobal( .representationByLanguageGlobal(
langCode: widget.pangeaMessageEvent.messageDisplayLangCode, langCode: widget.pangeaMessageEvent.messageDisplayLangCode,
) )
.onError( .onError((error, stackTrace) {
(error, stackTrace) => ErrorHandler.logError(
ErrorHandler.logError(e: error, s: stackTrace), e: PangeaWarningError(error),
) s: stackTrace,
.then((event) { m: "Error fetching representation",
);
return null;
}).then((event) {
if (!mounted) return;
repEvent = event; repEvent = event;
_setTextSpan(repEvent?.text ?? widget.pangeaMessageEvent.body); _setTextSpan(repEvent?.text ?? widget.pangeaMessageEvent.body);
}).whenComplete(() { }).whenComplete(() {

@ -149,33 +149,41 @@ packages:
description: description:
name: matcher name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.16+1"
version: "0.12.16+1"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.0" version: "0.8.0"
version: "0.8.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.0"
version: "1.12.0"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.0"
version: "1.9.0"
pedantic: pedantic:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -242,9 +250,11 @@ packages:
description: description:
name: test_api name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.0" version: "0.7.0"
version: "0.7.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -272,3 +282,5 @@ packages:
sdks: sdks:
dart: ">=3.3.0 <4.0.0" dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54" flutter: ">=3.18.0-18.0.pre.54"
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"

Loading…
Cancel
Save