Enhancements on Assets Filter

main_design2.0
zaid_daoud 2 years ago
parent 2a2142adb3
commit 5b9a33c519

@ -16,6 +16,7 @@ class SingleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> exte
final List<T> staticData;
final String title;
final Color backgroundColor;
final bool loading;
/// To use a static data (without calling API)
/// just send [NullableLoadingProvider] as generic data type and fill the [staticData]
@ -28,6 +29,7 @@ class SingleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> exte
this.enabled = true,
this.staticData,
this.backgroundColor,
this.loading,
}) : super(key: key);
@override
@ -84,7 +86,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
Widget build(BuildContext context) {
bool isEmpty = ((X == NullableLoadingProvider ? widget.staticData : provider.items)?.isEmpty ?? true);
return AppLoadingManager(
isLoading: (X == NullableLoadingProvider) ? false : provider.loading,
isLoading: widget.loading ?? ((X == NullableLoadingProvider) ? false : provider.loading),
isFailedLoading: (X == NullableLoadingProvider) ? false : provider.items == null,
stateCode: (X == NullableLoadingProvider) ? 200 : provider.stateCode,
onRefresh: () async {

@ -34,13 +34,21 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
Department _department;
String startDate, endDate;
int initialValue;
bool loading = false;
@override
void initState() {
filter = widget.data ?? AssetSearch();
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) {
_department = Provider.of<DepartmentProvider>(context, listen: false).items.firstWhere((element) => element.name == filter?.department, orElse: () => null);
_site = Provider.of<SiteProvider>(context, listen: false).items.firstWhere((element) => element.name == filter?.site, orElse: () => null);
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async {
loading = true;
setState(() {});
final departmentProvider = Provider.of<DepartmentProvider>(context, listen: false);
final siteProvider = Provider.of<SiteProvider>(context, listen: false);
if (departmentProvider?.items?.isEmpty ?? true) await departmentProvider.getDate();
if (siteProvider?.items?.isEmpty ?? true) await siteProvider.getDate();
_department = departmentProvider.items.firstWhere((element) => element.name == filter?.department, orElse: () => null);
_site = siteProvider.items.firstWhere((element) => element.name == filter?.site, orElse: () => null);
loading = false;
setState(() {});
});
super.initState();
@ -52,7 +60,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
appBar: DefaultAppBar(
title: context.translation.filter,
actions: [
if (_showResetButton())
if (loading == false && _showResetButton())
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@ -91,6 +99,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
context: context,
title: context.translation.byDepartment,
initialValue: _department,
loading: loading == false ? null : loading,
onSelect: (value) {
setState(() {
_department = value;
@ -102,6 +111,7 @@ class _AssetFilterScreenState extends State<AssetFilterScreen> {
context: context,
title: context.translation.bySite,
initialValue: _site,
loading: loading == false ? null : loading,
onSelect: (value) {
setState(() {
_site = value;

Loading…
Cancel
Save