This commit is contained in:
2025-05-19 13:07:53 +03:00
parent ac97305370
commit 0c3b5305a6
2 changed files with 15 additions and 3 deletions

View File

@@ -1,6 +1,8 @@
// ignore_for_file: always_specify_types // ignore_for_file: always_specify_types
//s1 Imports //s1 Imports
//s2 Core Package Imports //s2 Core Package Imports
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart'; import 'package:flutter/scheduler.dart';
//s2 1st-party Package Imports //s2 1st-party Package Imports
@@ -163,7 +165,11 @@ class _AstromicFuturePresenterState<T> extends State<AstromicFuturePresenter<T>>
if (returnedState == AstromicPresenterState.loaded || returnedState == AstromicPresenterState.empty || returnedState == AstromicPresenterState.error) { if (returnedState == AstromicPresenterState.loaded || returnedState == AstromicPresenterState.empty || returnedState == AstromicPresenterState.error) {
_setPrevious(returnedModel?.data, currentBatchId, returnedModel?.error); _setPrevious(returnedModel?.data, currentBatchId, returnedModel?.error);
} }
//
if (returnedState == AstromicPresenterState.error && returnedModel?.error != null) {
log('Got this error in the future presenter `${widget.id}`: ${returnedModel?.error}');
}
//
return widget.stateBuilder.containsKey(returnedState) ? widget.stateBuilder[returnedState]?.call(returnedModel) ?? defaultBuilder : defaultBuilder; return widget.stateBuilder.containsKey(returnedState) ? widget.stateBuilder[returnedState]?.call(returnedModel) ?? defaultBuilder : defaultBuilder;
}); });
//!SECTION //!SECTION

View File

@@ -1,5 +1,7 @@
//s1 Imports //s1 Imports
//s2 Core Package Imports //s2 Core Package Imports
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart'; import 'package:flutter/scheduler.dart';
//s2 1st-party Package Imports //s2 1st-party Package Imports
@@ -19,7 +21,7 @@ class AstromicStreamPresenter<T> extends StatefulWidget {
//SECTION - Widget Arguments //SECTION - Widget Arguments
final AstromicPresenterController controller; final AstromicPresenterController controller;
final String id; final String id;
final Map<String,dynamic>? neededArguments; final Map<String, dynamic>? neededArguments;
// //
final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)> stateBuilder; final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)> stateBuilder;
final AstromicPresenterConfiguration? configuration; final AstromicPresenterConfiguration? configuration;
@@ -124,7 +126,7 @@ class _AstromicStreamPresenterState<T> extends State<AstromicStreamPresenter<T>>
//S1 -- Method to reinitialize or update `_future` with a new instance //S1 -- Method to reinitialize or update `_future` with a new instance
void _initializeStream() { void _initializeStream() {
widget.controller.setProvidedArguments(widget.neededArguments ?? <String,dynamic>{}); widget.controller.setProvidedArguments(widget.neededArguments ?? <String, dynamic>{});
_stream = widget.controller.getStream(widget.id)?.asyncMap((dynamic result) => result as T?); _stream = widget.controller.getStream(widget.id)?.asyncMap((dynamic result) => result as T?);
} }
//!SECTION //!SECTION
@@ -161,6 +163,10 @@ class _AstromicStreamPresenterState<T> extends State<AstromicStreamPresenter<T>>
_setPrevious(returnedModel?.data, currentBatchId, returnedModel?.error); _setPrevious(returnedModel?.data, currentBatchId, returnedModel?.error);
} }
// //
if (returnedState == AstromicPresenterState.error && returnedModel?.error != null) {
log('Got this error in the stream presenter `${widget.id}`: ${returnedModel?.error}');
}
//
return widget.stateBuilder.containsKey(returnedState) ? widget.stateBuilder[returnedState]?.call(returnedModel) ?? defaultBuilder : defaultBuilder; return widget.stateBuilder.containsKey(returnedState) ? widget.stateBuilder[returnedState]?.call(returnedModel) ?? defaultBuilder : defaultBuilder;
// //
}); });