From 479f706f8abdbc68e42a20304bb6f88a4226e448 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 4 Oct 2022 15:19:29 -0500 Subject: [PATCH] fix(mobile): Fix error parsing datetime prevent the timeline to be displayed (#784) --- .../home_page_render_list_provider.dart | 70 +++++++++++-------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/mobile/lib/modules/home/providers/home_page_render_list_provider.dart b/mobile/lib/modules/home/providers/home_page_render_list_provider.dart index edb6733624..276aef9f78 100644 --- a/mobile/lib/modules/home/providers/home_page_render_list_provider.dart +++ b/mobile/lib/modules/home/providers/home_page_render_list_provider.dart @@ -1,5 +1,6 @@ import 'dart:math'; +import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart'; import 'package:immich_mobile/modules/settings/services/app_settings.service.dart'; @@ -44,43 +45,50 @@ final renderListProvider = StateProvider((ref) { DateTime? lastDate; assetGroups.forEach((groupName, assets) { - final date = DateTime.parse(groupName); + try { + final date = DateTime.parse(groupName); - if (lastDate == null || lastDate!.month != date.month) { + if (lastDate == null || lastDate!.month != date.month) { + elements.add( + RenderAssetGridElement( + RenderAssetGridElementType.monthTitle, + title: groupName, + date: date, + ), + ); + } + + // Add group title elements.add( - RenderAssetGridElement(RenderAssetGridElementType.monthTitle, - title: groupName, date: date), - ); - } - - // Add group title - elements.add( - RenderAssetGridElement( - RenderAssetGridElementType.dayTitle, - title: groupName, - date: date, - relatedAssetList: assets, - ), - ); - - // Add rows - int cursor = 0; - while (cursor < assets.length) { - int rowElements = min(assets.length - cursor, assetsPerRow); - - final rowElement = RenderAssetGridElement( - RenderAssetGridElementType.assetRow, - date: date, - assetRow: RenderAssetGridRow( - assets.sublist(cursor, cursor + rowElements), + RenderAssetGridElement( + RenderAssetGridElementType.dayTitle, + title: groupName, + date: date, + relatedAssetList: assets, ), ); - elements.add(rowElement); - cursor += rowElements; - } + // Add rows + int cursor = 0; + while (cursor < assets.length) { + int rowElements = min(assets.length - cursor, assetsPerRow); - lastDate = date; + final rowElement = RenderAssetGridElement( + RenderAssetGridElementType.assetRow, + date: date, + assetRow: RenderAssetGridRow( + assets.sublist(cursor, cursor + rowElements), + ), + ); + + elements.add(rowElement); + cursor += rowElements; + } + + lastDate = date; + } catch (e) { + debugPrint(e.toString()); + } }); return elements;