Skip to content

Commit

Permalink
Merge pull request #238 from enrique-lozano/hot-fixes
Browse files Browse the repository at this point in the history
Improve the finance health tiles
enrique-lozano authored Nov 9, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 0c99a99 + b64a9c1 commit e938be1
Showing 1 changed file with 64 additions and 48 deletions.
112 changes: 64 additions & 48 deletions lib/app/stats/widgets/finance_health_details.dart
Original file line number Diff line number Diff line change
@@ -16,52 +16,6 @@ class FinanceHealthDetails extends StatefulWidget {
}

class _FinanceHealthDetailsState extends State<FinanceHealthDetails> {
Widget buildExpansionPanel({
required FinanceHealthAttrScore attrScore,
required int index,
required String title,
required String subtitle,
required String text,
}) {
return ExpansionTile(
title: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(title),
const SizedBox(height: 2),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Icon(
Icons.circle,
size: 16,
color: FinanceHealthData.getHealthyValueColor(attrScore.score),
),
const SizedBox(width: 4),
Text(
attrScore.getScoreReviewTitle(context),
style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: FinanceHealthData.getHealthyValueColor(
attrScore.score),
fontWeight: FontWeight.bold,
),
),
],
),
const SizedBox(height: 6),
],
),
subtitle: Text(subtitle),
childrenPadding: const EdgeInsets.all(16),
children: [
HTMLText(
tags: const {'b': TextStyle(fontWeight: FontWeight.bold)},
htmlString: text,
)
],
);
}

@override
Widget build(BuildContext context) {
final t = Translations.of(context);
@@ -108,15 +62,15 @@ class _FinanceHealthDetailsState extends State<FinanceHealthDetails> {
title: t.stats.finance_health_breakdown,
body: Column(
children: [
buildExpansionPanel(
_FinanceHealthDetailTile(
attrScore: financeHealthData.monthsWithoutIncomeScore,
title: t.financial_health.months_without_income.title,
subtitle:
t.financial_health.months_without_income.subtitle,
text:
'${financeHealthData.getMonthsWithoutIncomeResume(context)}\n\n${t.financial_health.months_without_income.suggestion}',
index: 0),
buildExpansionPanel(
_FinanceHealthDetailTile(
attrScore: financeHealthData.savingPercentageScore,
title: t.financial_health.savings_percentage.title,
subtitle:
@@ -134,3 +88,65 @@ class _FinanceHealthDetailsState extends State<FinanceHealthDetails> {
});
}
}

class _FinanceHealthDetailTile extends StatelessWidget {
const _FinanceHealthDetailTile({
required this.attrScore,
required this.index,
required this.title,
required this.subtitle,
required this.text,
});

final FinanceHealthAttrScore attrScore;
final int index;
final String title;
final String subtitle;
final String text;

@override
Widget build(BuildContext context) {
return ExpansionTile(
expandedCrossAxisAlignment: CrossAxisAlignment.start,
expandedAlignment: Alignment.topLeft,

title: ListTile(
title: Text(title),
leading: SizedBox(
width: 30,
child: Column(
children: [
Text(
attrScore.weightedValue?.toStringAsFixed(0) ?? '--',
style: Theme.of(context).textTheme.titleLarge!.copyWith(
color: FinanceHealthData.getHealthyValueColor(
attrScore.score),
fontWeight: FontWeight.bold,
),
),
Text(
'pts',
style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: FinanceHealthData.getHealthyValueColor(
attrScore.score),
fontWeight: FontWeight.bold,
),
)
],
),
),
minTileHeight: 20,
minVerticalPadding: 0,
contentPadding: const EdgeInsets.all(0),
subtitle: Text(subtitle)),
// subtitle: Text(subtitle),
childrenPadding: const EdgeInsets.fromLTRB(16, 4, 16, 16),
children: [
HTMLText(
tags: const {'b': TextStyle(fontWeight: FontWeight.bold)},
htmlString: text,
),
],
);
}
}

0 comments on commit e938be1

Please sign in to comment.