From 16f1d4664cb708a2922aab3b4a5c95b6c48d29cc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 30 Jan 2024 00:43:57 +0100 Subject: [PATCH] Fix logs filtering by client --- lib/models/applied_filters.dart | 2 +- lib/providers/logs_provider.dart | 16 ++++++++-------- lib/screens/home/top_items/top_items_lists.dart | 2 +- lib/screens/logs/logs_list_appbar.dart | 14 ++++++-------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/models/applied_filters.dart b/lib/models/applied_filters.dart index 2b60e71..f4ef1ee 100644 --- a/lib/models/applied_filters.dart +++ b/lib/models/applied_filters.dart @@ -1,7 +1,7 @@ class AppliedFiters { String selectedResultStatus = 'all'; String? searchText; - List? clients; + List clients; AppliedFiters({ required this.selectedResultStatus, diff --git a/lib/providers/logs_provider.dart b/lib/providers/logs_provider.dart index 63e81cd..cba46c0 100644 --- a/lib/providers/logs_provider.dart +++ b/lib/providers/logs_provider.dart @@ -30,7 +30,7 @@ class LogsProvider with ChangeNotifier { AppliedFiters _appliedFilters = AppliedFiters( selectedResultStatus: 'all', searchText: null, - clients: null + clients: [] ); LoadStatus get loadStatus { @@ -177,18 +177,18 @@ class LogsProvider with ChangeNotifier { if (loadingMore != null && loadingMore == true && logsData != null) { LogsData newLogsData = result.content; newLogsData.data = [...logsData!.data, ...(result.content as LogsData).data]; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; } else { LogsData newLogsData = result.content; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; @@ -217,7 +217,7 @@ class LogsProvider with ChangeNotifier { _appliedFilters = AppliedFiters( selectedResultStatus: 'all', searchText: null, - clients: null + clients: [] ); if (result.successful == true) { @@ -254,9 +254,9 @@ class LogsProvider with ChangeNotifier { if (result.successful == true) { LogsData newLogsData = result.content as LogsData; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; diff --git a/lib/screens/home/top_items/top_items_lists.dart b/lib/screens/home/top_items/top_items_lists.dart index 758a0b6..7c24bd3 100644 --- a/lib/screens/home/top_items/top_items_lists.dart +++ b/lib/screens/home/top_items/top_items_lists.dart @@ -51,7 +51,7 @@ class TopItemsLists extends StatelessWidget { AppliedFiters( selectedResultStatus: 'all', searchText: value, - clients: null + clients: [] ) ); appConfigProvider.setSelectedScreen(2); diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 144a55e..01a870c 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -70,8 +70,6 @@ class LogsListAppBar extends StatelessWidget { forceElevated: innerBoxIsScrolled, surfaceTintColor: isDesktop(width) ? Colors.transparent : null, title: Text(AppLocalizations.of(context)!.logs), - expandedHeight: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null - ? 170 : null, actions: [ if (!(Platform.isAndroid || Platform.isIOS)) IconButton( onPressed: () => logsProvider.fetchLogs(inOffset: 0), @@ -87,7 +85,7 @@ class LogsListAppBar extends StatelessWidget { : const SizedBox(), const SizedBox(width: 5), ], - bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null + bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients.isNotEmpty ? PreferredSize( preferredSize: const Size(double.maxFinite, 70), child: Container( @@ -172,7 +170,7 @@ class LogsListAppBar extends StatelessWidget { }, ), ], - if (logsProvider.appliedFilters.clients != null) ...[ + if (logsProvider.appliedFilters.clients.isNotEmpty) ...[ const SizedBox(width: 15), Chip( avatar: const Icon( @@ -181,9 +179,9 @@ class LogsListAppBar extends StatelessWidget { label: Row( children: [ Text( - logsProvider.appliedFilters.clients!.length == 1 - ? logsProvider.appliedFilters.clients![0] - : "${logsProvider.appliedFilters.clients!.length} ${AppLocalizations.of(context)!.clients}", + logsProvider.appliedFilters.clients.length == 1 + ? logsProvider.appliedFilters.clients[0] + : "${logsProvider.appliedFilters.clients.length} ${AppLocalizations.of(context)!.clients}", ), ], ), @@ -196,7 +194,7 @@ class LogsListAppBar extends StatelessWidget { AppliedFiters( selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, searchText: logsProvider.appliedFilters.searchText, - clients: null + clients: [] ) ); logsProvider.setSelectedClients(null);