From 087414c03a29bb3c1232f642456e26dee6749623 Mon Sep 17 00:00:00 2001 From: "Michael W. Aziz" Date: Sun, 11 May 2025 12:06:35 -0400 Subject: [PATCH] [SYNC] --- lib/src/presenting/src/widgets/future_presenter.widget.dart | 4 ++++ .../presenting/src/widgets/presenter_controller.widget.dart | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/presenting/src/widgets/future_presenter.widget.dart b/lib/src/presenting/src/widgets/future_presenter.widget.dart index e0ddec8..2efda6a 100644 --- a/lib/src/presenting/src/widgets/future_presenter.widget.dart +++ b/lib/src/presenting/src/widgets/future_presenter.widget.dart @@ -19,6 +19,7 @@ class AstromicFuturePresenter extends StatefulWidget { //SECTION - Widget Arguments final AstromicPresenterController controller; final String id; + final Map? neededArguments; // final Map? r)> stateBuilder; final AstromicPresenterConfiguration? configuration; @@ -30,6 +31,8 @@ class AstromicFuturePresenter extends StatefulWidget { required this.id, required this.stateBuilder, this.configuration, + this.neededArguments, + }); @override @@ -128,6 +131,7 @@ class _AstromicFuturePresenterState extends State> //S1 -- Method to reinitialize or update `_future` with a new instance void _initializeFuture() { + widget.controller.setProvidedArguments(widget.neededArguments ?? {}); _future = widget.controller.getFuture(widget.id)?.then((dynamic result) => result as T?); } //!SECTION diff --git a/lib/src/presenting/src/widgets/presenter_controller.widget.dart b/lib/src/presenting/src/widgets/presenter_controller.widget.dart index 11330ea..5acd497 100644 --- a/lib/src/presenting/src/widgets/presenter_controller.widget.dart +++ b/lib/src/presenting/src/widgets/presenter_controller.widget.dart @@ -3,14 +3,14 @@ import 'dart:async'; /// A contrller used to control Futures/Streams to present them effeciantly. class AstromicPresenterController { - late final Map _futures; + late final Map args)? fetch, int c)> _futures; late final Map args)?> _streams; late final Map> _futureRefreshers; AstromicPresenterController({ - Map futures = const {}, + Map args)? fetch, int startCycle)> futures = const {}, Map args)?> streams = const {}, }) : _futures = futures.map((k, v) => MapEntry(k, (v.$1, v.$2))), _futureRefreshers = futures.map((k, v) => MapEntry(k, StreamController.broadcast())), @@ -35,7 +35,7 @@ class AstromicPresenterController { Future? getFuture(String id) { assert(_futures.containsKey(id), 'did you add a future with this id?'); - return _futures[id]!.$1!() as Future?; + return _futures[id]!.$1!(getProvidedArguments()) as Future?; } /// Get the stream using it's ID.