diff --git a/lib/providers/duniter_indexer.dart b/lib/providers/duniter_indexer.dart index 94274f3..dd969ef 100644 --- a/lib/providers/duniter_indexer.dart +++ b/lib/providers/duniter_indexer.dart @@ -253,7 +253,7 @@ Future _execQuery( return await client.query(options); } -Map computeHistoryView(repository, lastDateDelimiter, isDouble) { +Map computeHistoryView(repository) { bool isTody = false; bool isYesterday = false; bool isThisWeek = false; @@ -281,27 +281,26 @@ Map computeHistoryView(repository, lastDateDelimiter, isDouble) { final yesterdayDate = DateTime(now.year, now.month, now.day - 1); if (transactionDate == todayDate && !isTody) { - dateDelimiter = lastDateDelimiter = "today".tr(); + dateDelimiter = "today".tr(); isTody = true; } else if (transactionDate == yesterdayDate && !isYesterday) { - dateDelimiter = lastDateDelimiter = "yesterday".tr(); + dateDelimiter = "yesterday".tr(); isYesterday = true; } else if (weekNumber(date) == weekNumber(now) && date.year == now.year && transactionDate != yesterdayDate && transactionDate != todayDate && !isThisWeek) { - dateDelimiter = lastDateDelimiter = "thisWeek".tr(); + dateDelimiter = "thisWeek".tr(); isThisWeek = true; - } else if (lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" && + } else if (dateDelimiter != "${monthsInYear[date.month]} ${date.year}" && transactionDate != todayDate && transactionDate != yesterdayDate && !(weekNumber(date) == weekNumber(now) && date.year == now.year)) { if (date.year == now.year) { - dateDelimiter = lastDateDelimiter = monthsInYear[date.month]; + dateDelimiter = monthsInYear[date.month]; } else { - dateDelimiter = - lastDateDelimiter = "${monthsInYear[date.month]} ${date.year}"; + dateDelimiter = "${monthsInYear[date.month]} ${date.year}"; } } else { isDelimiter = false; diff --git a/lib/widgets/history_query.dart b/lib/widgets/history_query.dart index a8ad841..ef7728a 100644 --- a/lib/widgets/history_query.dart +++ b/lib/widgets/history_query.dart @@ -141,9 +141,8 @@ class HistoryQuery extends StatelessWidget { final duniterIndexer = Provider.of(context, listen: false); int keyID = 0; const double avatarSize = 200; - String? lastDateDelimiter; - bool? isDouble; bool isMigrationPassed = false; + List pastDelimiters = []; return duniterIndexer.transBC == null ? Column(children: [ @@ -156,11 +155,9 @@ class HistoryQuery extends StatelessWidget { : Column(children: [ Column( children: duniterIndexer.transBC!.map((repository) { - final answer = - computeHistoryView(repository, lastDateDelimiter, isDouble); - isDouble = lastDateDelimiter == answer['dateDelimiter'] || - answer['dateDelimiter'] == ''; - lastDateDelimiter = answer['dateDelimiter']; + final answer = computeHistoryView(repository); + pastDelimiters.add(answer['dateDelimiter']); + bool isMigrationTime = false; if (answer['isMigrationTime'] && !isMigrationPassed) { isMigrationPassed = true; @@ -190,7 +187,12 @@ class HistoryQuery extends StatelessWidget { ], ), ), - if (!isDouble!) + // if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1) + + if (pastDelimiters.length == 1 || + pastDelimiters.length >= 2 && + !(pastDelimiters[pastDelimiters.length - 2] == + answer['dateDelimiter'])) Padding( padding: const EdgeInsets.symmetric(vertical: 30), child: Text(