[SYNC]
This commit is contained in:
@@ -23,7 +23,8 @@ class AstromicFuturePresenter<T> extends StatefulWidget {
|
||||
final String id;
|
||||
final Map<String, dynamic>? neededArguments;
|
||||
//
|
||||
final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)> stateBuilder;
|
||||
final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)>? stateBuilder;
|
||||
final Map<List<AstromicPresenterState>, Widget Function(AstromicPresenterState state, PresenterReturnModel<T?>? r)>? multiStateBuilder;
|
||||
final AstromicPresenterConfiguration? configuration;
|
||||
//!SECTION
|
||||
|
||||
@@ -31,11 +32,11 @@ class AstromicFuturePresenter<T> extends StatefulWidget {
|
||||
super.key,
|
||||
required this.controller,
|
||||
required this.id,
|
||||
required this.stateBuilder,
|
||||
this.stateBuilder,
|
||||
this.multiStateBuilder,
|
||||
this.configuration,
|
||||
this.neededArguments,
|
||||
|
||||
});
|
||||
}) : assert(stateBuilder != null || multiStateBuilder != null, 'You need to provide either a state or a multi-state builder.');
|
||||
|
||||
@override
|
||||
State<AstromicFuturePresenter<T>> createState() => _AstromicFuturePresenterState<T>();
|
||||
@@ -105,7 +106,7 @@ class _AstromicFuturePresenterState<T> extends State<AstromicFuturePresenter<T>>
|
||||
final Map<AstromicPresenterState, Widget> _defaultstateBuilders = {
|
||||
AstromicPresenterState.initialLoad: const Center(child: CircularProgressIndicator()),
|
||||
AstromicPresenterState.loading: const Center(child: CircularProgressIndicator()),
|
||||
AstromicPresenterState.empty: const Center(child: Text('No data at the moment!')),
|
||||
AstromicPresenterState.empty: Container(),
|
||||
AstromicPresenterState.error: const Center(child: Text('an error has occured, check the log!')),
|
||||
AstromicPresenterState.loaded: const Center(child: Text('I have the data, replace this with a widget!')),
|
||||
};
|
||||
@@ -174,7 +175,18 @@ class _AstromicFuturePresenterState<T> extends State<AstromicFuturePresenter<T>>
|
||||
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 != null
|
||||
? widget.stateBuilder!.containsKey(returnedState)
|
||||
? widget.stateBuilder![returnedState]?.call(returnedModel) ?? defaultBuilder
|
||||
: defaultBuilder
|
||||
: widget.multiStateBuilder != null
|
||||
?
|
||||
//
|
||||
widget.multiStateBuilder!.entries.where((k) => k.key.contains(returnedState)).isNotEmpty
|
||||
? widget.multiStateBuilder!.entries.where((k) => k.key.contains(returnedState)).first.value.call(returnedState, returnedModel)
|
||||
: defaultBuilder
|
||||
//
|
||||
: Container();
|
||||
});
|
||||
//!SECTION
|
||||
}
|
||||
|
||||
123
lib/src/presenting/src/widgets/multi_presenter.widget.dart
Normal file
123
lib/src/presenting/src/widgets/multi_presenter.widget.dart
Normal file
@@ -0,0 +1,123 @@
|
||||
// //s1 Imports
|
||||
// //s2 Packages
|
||||
// //s3 Core Packages
|
||||
// import 'package:flutter/material.dart';
|
||||
|
||||
// import '../enums/enums.exports.dart';
|
||||
// import '../models/models.exports.dart';
|
||||
// import 'presenter_controller.widget.dart';
|
||||
// //s3 Internal Packages
|
||||
// //s3 3rd-party Packages
|
||||
// //s2 Utility
|
||||
// //s3 Configs
|
||||
// // import '../../../../../core/configs/routing/routing.config.dart';
|
||||
// //s3 Misc
|
||||
// //s2 Domain
|
||||
// //s3 Entities
|
||||
// //s3 Usecases
|
||||
// //s2 Presentation
|
||||
// //s3 Design
|
||||
// // import '../../../../design-system/design_system.dart';
|
||||
// //s3 Presenters
|
||||
// //s3 Widgets
|
||||
// //s1 Exports
|
||||
|
||||
// class AstromicMultiPresenterWidget extends StatefulWidget {
|
||||
// //SECTION - Widget Arguments
|
||||
// final AstromicPresenterController controller;
|
||||
// final Map<String, dynamic>? neededArguments;
|
||||
// //
|
||||
// final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)>? stateBuilder;
|
||||
// final Map<List<AstromicPresenterState>, Widget Function(AstromicPresenterState state, PresenterReturnModel<T?>? r)>? multiStateBuilder;
|
||||
// //
|
||||
// final AstromicPresenterConfiguration? configuration;
|
||||
// //!SECTION
|
||||
// //
|
||||
// const AstromicMultiPresenterWidget({
|
||||
// super.key,
|
||||
// });
|
||||
|
||||
// @override
|
||||
// State<AstromicMultiPresenterWidget> createState() => _AstromicMultiPresenterWidgetState();
|
||||
// }
|
||||
|
||||
// class _AstromicMultiPresenterWidgetState extends State<AstromicMultiPresenterWidget> {
|
||||
// //
|
||||
// //SECTION - State Variables
|
||||
// //s1 --State
|
||||
// //s1 --State
|
||||
// //
|
||||
// //s1 --Controllers
|
||||
// //late AstromicFormController _formController;
|
||||
// //s1 --Controllers
|
||||
// //
|
||||
// //s1 --Constants
|
||||
// //s1 --Constants
|
||||
// //!SECTION
|
||||
|
||||
// @override
|
||||
// void initState() {
|
||||
// super.initState();
|
||||
// //
|
||||
// //SECTION - State Variables initializations & Listeners
|
||||
// //s1 --State
|
||||
// //s1 --State
|
||||
// //
|
||||
// //s1 --Controllers & Listeners
|
||||
// // _formController = AstromicFormController();
|
||||
// //s1 --Controllers & Listeners
|
||||
// //
|
||||
// //s1 --Late & Async Initializers
|
||||
// //s1 --Late & Async Initializers
|
||||
// //!SECTION
|
||||
// }
|
||||
|
||||
// @override
|
||||
// void didChangeDependencies() {
|
||||
// super.didChangeDependencies();
|
||||
// //
|
||||
// //SECTION - State Variables initializations & Listeners
|
||||
// //s1 --State
|
||||
// //s1 --State
|
||||
// //
|
||||
// //s1 --Controllers & Listeners
|
||||
// //s1 --Controllers & Listeners
|
||||
// //
|
||||
// //!SECTION
|
||||
// }
|
||||
|
||||
// //SECTION - Dumb Widgets
|
||||
// //!SECTION
|
||||
|
||||
// //SECTION - Stateless functions
|
||||
// //!SECTION
|
||||
|
||||
// //SECTION - Action Callbacks
|
||||
// //!SECTION
|
||||
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// //SECTION - Build Setup
|
||||
// //s1 --Values
|
||||
// //double w = MediaQuery.of(context).size.width;
|
||||
// //double h = MediaQuery.of(context).size.height;
|
||||
// //s1 --Values
|
||||
// //
|
||||
// //s1 --Contexted Widgets
|
||||
// //s1 --Contexted Widgets
|
||||
// //!SECTION
|
||||
|
||||
// //SECTION - Build Return
|
||||
// return const Scaffold(
|
||||
// body: Center(child: Text(AstromicMultiPresenterWidget)),
|
||||
// );
|
||||
// //!SECTION
|
||||
// }
|
||||
|
||||
// @override
|
||||
// void dispose() {
|
||||
// //SECTION - Disposable variables
|
||||
// //!SECTION
|
||||
// super.dispose();
|
||||
// }
|
||||
// }
|
||||
@@ -23,7 +23,9 @@ class AstromicStreamPresenter<T> extends StatefulWidget {
|
||||
final String id;
|
||||
final Map<String, dynamic>? neededArguments;
|
||||
//
|
||||
final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)> stateBuilder;
|
||||
final Map<AstromicPresenterState, Widget Function(PresenterReturnModel<T?>? r)>? stateBuilder;
|
||||
final Map<List<AstromicPresenterState>, Widget Function(AstromicPresenterState state, PresenterReturnModel<T?>? r)>? multiStateBuilder;
|
||||
|
||||
final AstromicPresenterConfiguration? configuration;
|
||||
//!SECTION
|
||||
//
|
||||
@@ -31,10 +33,11 @@ class AstromicStreamPresenter<T> extends StatefulWidget {
|
||||
super.key,
|
||||
required this.controller,
|
||||
required this.id,
|
||||
required this.stateBuilder,
|
||||
this.stateBuilder,
|
||||
this.multiStateBuilder,
|
||||
this.configuration,
|
||||
this.neededArguments,
|
||||
});
|
||||
}) : assert(stateBuilder != null || multiStateBuilder != null, 'You need to provide either a state or a multi-state builder.');
|
||||
|
||||
@override
|
||||
State<AstromicStreamPresenter<T>> createState() => _AstromicStreamPresenterState<T>();
|
||||
@@ -107,7 +110,7 @@ class _AstromicStreamPresenterState<T> extends State<AstromicStreamPresenter<T>>
|
||||
final Map<AstromicPresenterState, Widget> _defaultstateBuilders = <AstromicPresenterState, Widget>{
|
||||
AstromicPresenterState.initialLoad: const Center(child: CircularProgressIndicator()),
|
||||
AstromicPresenterState.loading: const Center(child: CircularProgressIndicator()),
|
||||
AstromicPresenterState.empty: const Center(child: Text('No data at the moment!')),
|
||||
AstromicPresenterState.empty: Container(),
|
||||
AstromicPresenterState.error: const Center(child: Text('an error has occured, check the log!')),
|
||||
AstromicPresenterState.loaded: const Center(child: Text('I have the data, replace this with a widget!')),
|
||||
};
|
||||
@@ -167,7 +170,18 @@ class _AstromicStreamPresenterState<T> extends State<AstromicStreamPresenter<T>>
|
||||
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 != null
|
||||
? widget.stateBuilder!.containsKey(returnedState)
|
||||
? widget.stateBuilder![returnedState]?.call(returnedModel) ?? defaultBuilder
|
||||
: defaultBuilder
|
||||
: widget.multiStateBuilder != null
|
||||
?
|
||||
//
|
||||
widget.multiStateBuilder!.entries.where((k) => k.key.contains(returnedState)).isNotEmpty
|
||||
? widget.multiStateBuilder!.entries.where((k) => k.key.contains(returnedState)).first.value.call(returnedState, returnedModel)
|
||||
: defaultBuilder
|
||||
//
|
||||
: Container();
|
||||
//
|
||||
});
|
||||
//!SECTION
|
||||
|
||||
Reference in New Issue
Block a user