diff --git a/app/lib/common/widgets/drug_list/builder.dart b/app/lib/common/widgets/drug_list/builder.dart index 09a036e5..cc2b2fc7 100644 --- a/app/lib/common/widgets/drug_list/builder.dart +++ b/app/lib/common/widgets/drug_list/builder.dart @@ -37,6 +37,7 @@ class DrugList extends HookWidget { List? children, Widget? indicator, Widget? noDrugsMessage, + bool? showInactiveDrugs }) buildContainer; Widget _buildDrugList( @@ -142,6 +143,7 @@ class DrugList extends HookWidget { return buildContainer( children: drugLists, indicator: indicator, + showInactiveDrugs: !currentlyEnabled || currentlyExpanded, ); } diff --git a/app/lib/common/widgets/drug_search/builder.dart b/app/lib/common/widgets/drug_search/builder.dart index 2759af66..1ae0beb1 100644 --- a/app/lib/common/widgets/drug_search/builder.dart +++ b/app/lib/common/widgets/drug_search/builder.dart @@ -43,17 +43,28 @@ class DrugSearch extends HookWidget { : '' ), searchForDrugClass: searchForDrugClass, - buildContainer: - ({children, indicator, noDrugsMessage}) => Column( + buildContainer: ({ + children, + indicator, + noDrugsMessage, + showInactiveDrugs, + }) => Column( children: [ Padding( padding: EdgeInsets.all(PharMeTheme.smallSpace), child: Row( crossAxisAlignment: CrossAxisAlignment.center, - children: _buildSearchBarItems(context, searchController), + children: _buildSearchBarItems( + context, + searchController, + showInactiveDrugs: showInactiveDrugs ?? true, + ), ), ), - if (children != null) scrollList(keepPosition: keepPosition, children), + if (children != null) scrollList( + keepPosition: keepPosition, + children, + ), if (noDrugsMessage != null) noDrugsMessage, if (indicator != null) indicator, ], @@ -65,6 +76,9 @@ class DrugSearch extends HookWidget { List _buildSearchBarItems( BuildContext context, TextEditingController searchController, + { + required bool showInactiveDrugs, + } ) { return [ Expanded( @@ -89,6 +103,7 @@ class DrugSearch extends HookWidget { state: state, activeDrugs: activeDrugs, searchForDrugClass: searchForDrugClass, + showInactiveDrugs: showInactiveDrugs, ), ], ]; diff --git a/app/lib/common/widgets/drug_search/drug_filters.dart b/app/lib/common/widgets/drug_search/drug_filters.dart index 38304241..aed99ec3 100644 --- a/app/lib/common/widgets/drug_search/drug_filters.dart +++ b/app/lib/common/widgets/drug_search/drug_filters.dart @@ -10,6 +10,7 @@ class WarningLevelFilterChip extends HookWidget { required this.drugs, required this.activeDrugs, required this.searchForDrugClass, + required this.showInactiveDrugs, }); final WarningLevel warningLevel; @@ -18,12 +19,17 @@ class WarningLevelFilterChip extends HookWidget { final List drugs; final ActiveDrugs activeDrugs; final bool searchForDrugClass; + final bool showInactiveDrugs; int _getFilteredNumber({ required FilterState itemFilter, required List drugs, }) { - return itemFilter + final currentFilter = FilterState.from( + itemFilter, + showInactive: showInactiveDrugs, + ); + return currentFilter .filter(drugs, activeDrugs, searchForDrugClass: searchForDrugClass) .length; } @@ -135,25 +141,32 @@ class DrugFilters extends StatelessWidget { required this.state, required this.activeDrugs, required this.searchForDrugClass, + required this.showInactiveDrugs, }); final DrugListCubit cubit; final DrugListState state; final ActiveDrugs activeDrugs; final bool searchForDrugClass; + final bool showInactiveDrugs; bool _showActiveIndicator() => state.whenOrNull( loaded: (allDrugs, filter) { final relevantDrugsFilter = FilterState.from( FilterState.initial(), query: filter.query, + showInactive: showInactiveDrugs, ); final totalNumberOfDrugs = relevantDrugsFilter.filter( allDrugs, activeDrugs, searchForDrugClass: searchForDrugClass, ).length; - final currentNumberOfDrugs = filter.filter( + final currentFilter = FilterState.from( + filter, + showInactive: showInactiveDrugs, + ); + final currentNumberOfDrugs = currentFilter.filter( allDrugs, activeDrugs, searchForDrugClass: searchForDrugClass, @@ -196,6 +209,7 @@ class DrugFilters extends StatelessWidget { filter: filter, activeDrugs: activeDrugs, searchForDrugClass: searchForDrugClass, + showInactiveDrugs: showInactiveDrugs, ), ); return [ diff --git a/app/lib/report/pages/gene.dart b/app/lib/report/pages/gene.dart index ac9af984..f252cb89 100644 --- a/app/lib/report/pages/gene.dart +++ b/app/lib/report/pages/gene.dart @@ -27,7 +27,12 @@ class GenePage extends HookWidget { state: state, activeDrugs: activeDrugs, noDrugsMessage: context.l10n.gene_page_no_relevant_drugs, - buildContainer: ({children, indicator, noDrugsMessage}) => + buildContainer: ({ + children, + indicator, + noDrugsMessage, + showInactiveDrugs, + }) => Column( children: [ Padding(