|
@@ -75,22 +75,23 @@ class RenderList {
|
|
|
|
|
|
RenderList(this.elements);
|
|
RenderList(this.elements);
|
|
|
|
|
|
- static Map<String, List<Asset>> _groupAssets(
|
|
|
|
|
|
+ static Map<DateTime, List<Asset>> _groupAssets(
|
|
List<Asset> assets,
|
|
List<Asset> assets,
|
|
GroupAssetsBy groupBy,
|
|
GroupAssetsBy groupBy,
|
|
) {
|
|
) {
|
|
- assets.sortByCompare<DateTime>(
|
|
|
|
- (e) => e.createdAt,
|
|
|
|
- (a, b) => b.compareTo(a),
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
if (groupBy == GroupAssetsBy.day) {
|
|
if (groupBy == GroupAssetsBy.day) {
|
|
return assets.groupListsBy(
|
|
return assets.groupListsBy(
|
|
- (element) => DateFormat('y-MM-dd').format(element.createdAt.toLocal()),
|
|
|
|
|
|
+ (element) {
|
|
|
|
+ final date = element.createdAt.toLocal();
|
|
|
|
+ return DateTime(date.year, date.month, date.day);
|
|
|
|
+ },
|
|
);
|
|
);
|
|
} else if (groupBy == GroupAssetsBy.month) {
|
|
} else if (groupBy == GroupAssetsBy.month) {
|
|
return assets.groupListsBy(
|
|
return assets.groupListsBy(
|
|
- (element) => DateFormat('y-MM').format(element.createdAt.toLocal()),
|
|
|
|
|
|
+ (element) {
|
|
|
|
+ final date = element.createdAt.toLocal();
|
|
|
|
+ return DateTime(date.year, date.month);
|
|
|
|
+ },
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -113,10 +114,11 @@ class RenderList {
|
|
|
|
|
|
final groups = _groupAssets(allAssets, groupBy);
|
|
final groups = _groupAssets(allAssets, groupBy);
|
|
|
|
|
|
- groups.forEach((groupName, assets) {
|
|
|
|
- try {
|
|
|
|
- final date = assets.first.createdAt.toLocal();
|
|
|
|
|
|
+ groups.entries.sortedBy((e) =>e.key).reversed.forEach((entry) {
|
|
|
|
+ final date = entry.key;
|
|
|
|
+ final assets = entry.value;
|
|
|
|
|
|
|
|
+ try {
|
|
// Month title
|
|
// Month title
|
|
if (groupBy == GroupAssetsBy.day &&
|
|
if (groupBy == GroupAssetsBy.day &&
|
|
(lastDate == null || lastDate!.month != date.month)) {
|
|
(lastDate == null || lastDate!.month != date.month)) {
|