diff --git a/app/lib/common/models/medication/warning_level.dart b/app/lib/common/models/medication/warning_level.dart index 7d5ee9f5a..d9f05720e 100644 --- a/app/lib/common/models/medication/warning_level.dart +++ b/app/lib/common/models/medication/warning_level.dart @@ -1 +1,15 @@ +import 'package:flutter/material.dart'; + enum WarningLevel { danger, warning, ok } + +final recommendationColorMap = { + WarningLevel.danger.name: Color(0xFFFFAFAF), + WarningLevel.ok.name: Color(0xFF00FF00), + WarningLevel.warning.name: Color(0xFFFFEBCC), +}; + +final recommendationIconMap = { + WarningLevel.danger.name: Icons.dangerous_rounded, + WarningLevel.ok.name: Icons.check_circle_rounded, + WarningLevel.warning.name: Icons.warning_rounded, +}; diff --git a/app/lib/common/pages/medications/medication.dart b/app/lib/common/pages/medications/medication.dart index 85a343c40..de4ff8609 100644 --- a/app/lib/common/pages/medications/medication.dart +++ b/app/lib/common/pages/medications/medication.dart @@ -31,8 +31,6 @@ class MedicationPage extends StatelessWidget { loading: () => Center(child: CircularProgressIndicator()), loaded: (medication) => _buildMedicationsPage( filterUserGuidelines(medication), - isOkGuideline: medication.guidelines[0].warningLevel == - WarningLevel.ok.toString(), context: context, ), ), @@ -44,7 +42,6 @@ class MedicationPage extends StatelessWidget { Widget _buildMedicationsPage( MedicationWithGuidelines medication, { - required bool isOkGuideline, required BuildContext context, }) { return Column( @@ -60,7 +57,7 @@ class MedicationPage extends StatelessWidget { ), SizedBox(height: 12), if (medication.guidelines.isNotEmpty) - ClinicalAnnotationCard(medication, isOkGuideline: isOkGuideline) + ClinicalAnnotationCard(medication) else Text(context.l10n.medications_page_no_guidelines_for_phenotype), ], diff --git a/app/lib/common/pages/medications/widgets/annotation_card.dart b/app/lib/common/pages/medications/widgets/annotation_card.dart index c407350f2..7072342fb 100644 --- a/app/lib/common/pages/medications/widgets/annotation_card.dart +++ b/app/lib/common/pages/medications/widgets/annotation_card.dart @@ -13,10 +13,9 @@ import 'sub_header.dart'; import 'tooltip_icon.dart'; class ClinicalAnnotationCard extends StatelessWidget { - const ClinicalAnnotationCard(this.medication, {required this.isOkGuideline}); + const ClinicalAnnotationCard(this.medication); final MedicationWithGuidelines medication; - final bool isOkGuideline; @override Widget build(BuildContext context) { @@ -37,7 +36,6 @@ class ClinicalAnnotationCard extends StatelessWidget { .guidelines[0].cpicRecommendation.isNotNullOrBlank) ...[ RecommendationCard( medication, - isOkGuideline: isOkGuideline, context: context, ), SizedBox(height: 16), diff --git a/app/lib/common/pages/medications/widgets/recommendation_card.dart b/app/lib/common/pages/medications/widgets/recommendation_card.dart index 78649d905..b4deb1da5 100644 --- a/app/lib/common/pages/medications/widgets/recommendation_card.dart +++ b/app/lib/common/pages/medications/widgets/recommendation_card.dart @@ -8,12 +8,10 @@ import 'sub_header.dart'; class RecommendationCard extends StatelessWidget { const RecommendationCard( this.medication, { - required this.isOkGuideline, required this.context, }); final MedicationWithGuidelines medication; - final bool isOkGuideline; final BuildContext context; @override @@ -22,11 +20,8 @@ class RecommendationCard extends StatelessWidget { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), - color: medication.guidelines[0].warningLevel == WarningLevel.danger.name - ? Color(0xFFFFAFAF) - : medication.guidelines[0].warningLevel == WarningLevel.ok.name - ? Color(0xFF00FF00) - : Color(0xFFFFEBCC), + color: recommendationColorMap[medication.guidelines[0].warningLevel] ?? + Color(0xFFFFEBCC), child: Padding( padding: const EdgeInsets.all(8), child: Column(children: [ @@ -37,14 +32,10 @@ class RecommendationCard extends StatelessWidget { context.l10n.medications_page_header_recommendation, ), Icon( - medication.guidelines[0].warningLevel == - WarningLevel.danger.name - ? Icons.dangerous_rounded - : medication.guidelines[0].warningLevel == - WarningLevel.ok.name - ? Icons.check_circle_rounded - : Icons.warning_rounded, - size: 32), + recommendationIconMap[medication.guidelines[0].warningLevel] ?? + Icons.warning_rounded, + size: 32, + ), ], ), SizedBox(height: 4),