Skip to content

Commit

Permalink
feat(#569): use WarningLevel.severity for sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
tamslo committed Jun 20, 2023
1 parent 6a13732 commit 786acc8
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
3 changes: 2 additions & 1 deletion app/lib/common/models/drug/warning_level.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ extension WarningLevelSeverity on WarningLevel {
static final _severityMap = {
WarningLevel.red.name: 2,
WarningLevel.yellow.name: 1,
WarningLevel.green.name: 0
WarningLevel.green.name: 0,
WarningLevel.none.name: -1,
};
int get severity => WarningLevelSeverity._severityMap[name]!;
}
17 changes: 7 additions & 10 deletions app/lib/common/widgets/drug_list/builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,14 @@ List<Widget> _buildDrugCards(
if (filteredDrugs.isEmpty && noDrugsMessage != null) {
return [errorIndicator(noDrugsMessage)];
}
final sortedWarningLevels = [
'WarningLevel.red',
'WarningLevel.yellow',
'WarningLevel.green',
null,
];
int warningLevelSeverity(Drug drug) {
final warningLevel = drug.userGuideline()?.annotations.warningLevel
?? WarningLevel.none;
return warningLevel.severity;
}
filteredDrugs.sort((drugA, drugB) {
final warningLevelComparison = sortedWarningLevels.indexOf(
drugA.userGuideline()?.annotations.warningLevel.toString())
.compareTo(sortedWarningLevels.indexOf(
drugB.userGuideline()?.annotations.warningLevel.toString()));
final warningLevelComparison = -warningLevelSeverity(drugA)
.compareTo(warningLevelSeverity(drugB));
if (warningLevelComparison == 0) {
return drugA.name.compareTo(drugB.name);
}
Expand Down

0 comments on commit 786acc8

Please sign in to comment.