From 0d9c07f23b4025256805de3567c3428f1f7c428c Mon Sep 17 00:00:00 2001 From: Tamara Slosarek Date: Fri, 23 Feb 2024 14:00:51 +0100 Subject: [PATCH] feat(#691): add filter for missing guidelines * Add own file for FilterButton * Make lookup fetching even better debuggable (not sure why this is making problems the whole time) --- app/lib/common/utilities/genome_data.dart | 3 ++- app/lib/common/widgets/drug_list/cubit.dart | 8 +------- .../common/widgets/drug_search/filter_button.dart | 12 ++++++++++++ app/lib/common/widgets/drug_search/filter_menu.dart | 13 +------------ app/lib/common/widgets/module.dart | 1 + 5 files changed, 17 insertions(+), 20 deletions(-) create mode 100644 app/lib/common/widgets/drug_search/filter_button.dart diff --git a/app/lib/common/utilities/genome_data.dart b/app/lib/common/utilities/genome_data.dart index cebe119b..00e71e0f 100644 --- a/app/lib/common/utilities/genome_data.dart +++ b/app/lib/common/utilities/genome_data.dart @@ -38,7 +38,8 @@ Future _saveDiplotypeAndActiveDrugsResponse( } Future updateGenotypeResults() async { - if (!shouldUpdateGenotypeResults()) return; + final skipUpdate = !shouldUpdateGenotypeResults(); + if (skipUpdate) return; // fetch lookups final response = await get(Uri.parse(cpicLookupUrl)); if (response.statusCode != 200) throw Exception(); diff --git a/app/lib/common/widgets/drug_list/cubit.dart b/app/lib/common/widgets/drug_list/cubit.dart index 53c4a086..aaf49d9e 100644 --- a/app/lib/common/widgets/drug_list/cubit.dart +++ b/app/lib/common/widgets/drug_list/cubit.dart @@ -124,13 +124,7 @@ class FilterState { bool isAccepted(Drug drug, ActiveDrugs activeDrugs, { required bool useDrugClass, }) { - var warningLevelMatches = showWarningLevel[drug.warningLevel] ?? true; - // WarningLevel.none is also shown in green in app; therefore, it should - // also be filtered with green option - if (drug.warningLevel == WarningLevel.none) { - warningLevelMatches = warningLevelMatches && - showWarningLevel[WarningLevel.green]!; - } + final warningLevelMatches = showWarningLevel[drug.warningLevel] ?? true; final isDrugAccepted = drug.matches(query: query, useClass: useDrugClass) && (activeDrugs.contains(drug.name) || showInactive) && diff --git a/app/lib/common/widgets/drug_search/filter_button.dart b/app/lib/common/widgets/drug_search/filter_button.dart new file mode 100644 index 00000000..7cc80c87 --- /dev/null +++ b/app/lib/common/widgets/drug_search/filter_button.dart @@ -0,0 +1,12 @@ +import '../../module.dart'; + +class FilterButton extends StatelessWidget { + @override + Widget build(BuildContext context) { + return IconButton( + icon: Icon(Icons.filter_list), + color: PharMeTheme.iconColor, + onPressed: Scaffold.of(context).openDrawer, + ); + } +} diff --git a/app/lib/common/widgets/drug_search/filter_menu.dart b/app/lib/common/widgets/drug_search/filter_menu.dart index 78d5233b..ac98a115 100644 --- a/app/lib/common/widgets/drug_search/filter_menu.dart +++ b/app/lib/common/widgets/drug_search/filter_menu.dart @@ -1,16 +1,5 @@ import '../../module.dart'; -class FilterButton extends StatelessWidget { - @override - Widget build(BuildContext context) { - return IconButton( - icon: Icon(Icons.filter_list), - color: PharMeTheme.iconColor, - onPressed: Scaffold.of(context).openDrawer, - ); - } -} - class FilterMenuItem { FilterMenuItem({ required bool initialValue, @@ -29,6 +18,7 @@ class FilterMenuItem { set value(newValue) => _value = newValue; bool get value => _value; } + class FilterMenu extends HookWidget { const FilterMenu(this.cubit, this.state, this.activeDrugs, { required this.useDrugClass @@ -125,7 +115,6 @@ class FilterMenu extends HookWidget { return [ buildDrugStatusItem(), ...WarningLevel.values - .filter((warningLevel) => warningLevel != WarningLevel.none) .map(buildWarningLevelItem), ]; } diff --git a/app/lib/common/widgets/module.dart b/app/lib/common/widgets/module.dart index 26ef9023..adf2c0b8 100644 --- a/app/lib/common/widgets/module.dart +++ b/app/lib/common/widgets/module.dart @@ -8,6 +8,7 @@ export 'drug_list/builder.dart'; export 'drug_list/cubit.dart'; export 'drug_list/drug_items/drug_cards.dart'; export 'drug_search/builder.dart'; +export 'drug_search/filter_button.dart'; export 'drug_search/filter_data_wrapper.dart'; export 'drug_search/filter_menu.dart'; export 'error_handler.dart';