From 5c0a959b62faef79a6945aee847fc4328d6be582 Mon Sep 17 00:00:00 2001 From: Michael Aziz Date: Sun, 25 May 2025 15:21:57 +0300 Subject: [PATCH] [SYNC] --- lib/src/presenting/src/helpers/snapshot_helper.dart | 3 ++- lib/src/presenting/src/models/presenter_return.model.dart | 6 ++++-- lib/src/presenting/src/widgets/future_presenter.widget.dart | 2 +- lib/src/presenting/src/widgets/stream_presenter.widget.dart | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/src/presenting/src/helpers/snapshot_helper.dart b/lib/src/presenting/src/helpers/snapshot_helper.dart index f9e6433..467ced5 100644 --- a/lib/src/presenting/src/helpers/snapshot_helper.dart +++ b/lib/src/presenting/src/helpers/snapshot_helper.dart @@ -11,6 +11,7 @@ class SnapshotHelper { T? data = snapshot.data; T? previousData = lastFetchedData; dynamic error = snapshot.error; + StackTrace? errorST = snapshot.stackTrace; dynamic previousError = lastError; // bool hasError = error != null && snapshot.hasError; @@ -83,7 +84,7 @@ class SnapshotHelper { } else { //S2 -- Done loading but there is NO data! (errored) rState = AstromicPresenterState.error; - rModel = PresenterFailureReturnModel(error: error, initialData: previousData, oldBatchId: oldBatchId, batchId: currentBatchId); + rModel = PresenterFailureReturnModel(error: error, errorST: errorST, initialData: previousData, oldBatchId: oldBatchId, batchId: currentBatchId); } } // diff --git a/lib/src/presenting/src/models/presenter_return.model.dart b/lib/src/presenting/src/models/presenter_return.model.dart index 6db0eb4..af50d1a 100644 --- a/lib/src/presenting/src/models/presenter_return.model.dart +++ b/lib/src/presenting/src/models/presenter_return.model.dart @@ -4,19 +4,21 @@ class PresenterReturnModel { final T? initialData; // The old data if exists final T? data; // New data if exists final dynamic error; // Errors if exists + final StackTrace? errorST; // StackTrace for that error. PresenterReturnModel({ required this.batchId, this.oldBatchId, this.error, this.data, this.initialData, + this.errorST, }); } class PresenterSuccessReturnModel extends PresenterReturnModel { - PresenterSuccessReturnModel({super.initialData, super.data, super.error, required super.batchId, super.oldBatchId}); + PresenterSuccessReturnModel({super.initialData, super.data, super.error, super.errorST, required super.batchId, super.oldBatchId}); } class PresenterFailureReturnModel extends PresenterReturnModel { - PresenterFailureReturnModel({super.initialData, super.data, super.error, required super.batchId, super.oldBatchId}); + PresenterFailureReturnModel({super.initialData, super.data, super.error, super.errorST, required super.batchId, super.oldBatchId}); } diff --git a/lib/src/presenting/src/widgets/future_presenter.widget.dart b/lib/src/presenting/src/widgets/future_presenter.widget.dart index b09be06..4bb41be 100644 --- a/lib/src/presenting/src/widgets/future_presenter.widget.dart +++ b/lib/src/presenting/src/widgets/future_presenter.widget.dart @@ -172,7 +172,7 @@ class _AstromicFuturePresenterState extends State> } // if (returnedState == AstromicPresenterState.error && returnedModel?.error != null) { - log('Got this error in the future presenter `${widget.id}`: ${returnedModel?.error}'); + log('Got this error in the future presenter `${widget.id}`', error: returnedModel?.error, stackTrace: returnedModel?.errorST); } // return widget.stateBuilder != null diff --git a/lib/src/presenting/src/widgets/stream_presenter.widget.dart b/lib/src/presenting/src/widgets/stream_presenter.widget.dart index 108d6f5..449b73b 100644 --- a/lib/src/presenting/src/widgets/stream_presenter.widget.dart +++ b/lib/src/presenting/src/widgets/stream_presenter.widget.dart @@ -167,7 +167,7 @@ class _AstromicStreamPresenterState extends State> } // if (returnedState == AstromicPresenterState.error && returnedModel?.error != null) { - log('Got this error in the stream presenter `${widget.id}`: ${returnedModel?.error}'); + log('Got this error in the stream presenter `${widget.id}`', error: returnedModel?.error, stackTrace: returnedModel?.errorST); } // return widget.stateBuilder != null