Fixed UI on archive screen

This commit is contained in:
ashilkn 2023-04-20 15:50:49 +05:30
parent bf82b2dff3
commit 2c5d2c0d80
2 changed files with 57 additions and 53 deletions

View file

@ -47,56 +47,63 @@ class _AlbumHorizontalListWidgetState extends State<AlbumHorizontalListWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
debugPrint('$runtimeType widget build'); debugPrint('$runtimeType widget build');
return Column( return FutureBuilder<List<CollectionWithThumbnail>>(
crossAxisAlignment: CrossAxisAlignment.start, future: widget.collectionsFuture(),
children: [ builder: (context, snapshot) {
Padding( if (snapshot.hasError) {
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), _logger.severe("failed to fetch albums", snapshot.error);
child: Text( return Text(S.of(context).somethingWentWrong);
S.of(context).albums, } else if (snapshot.hasData) {
style: getEnteTextTheme(context).large, if (snapshot.data!.isEmpty) {
), return const SizedBox.shrink();
), }
FutureBuilder<List<CollectionWithThumbnail>>( final collectionsWithThumbnail =
future: widget.collectionsFuture(), snapshot.data as List<CollectionWithThumbnail>;
builder: (context, snapshot) { return Padding(
if (snapshot.hasError) { padding: const EdgeInsets.only(bottom: 24, top: 8),
_logger.severe("failed to fetch albums", snapshot.error); child: Column(
return Text(S.of(context).somethingWentWrong); crossAxisAlignment: CrossAxisAlignment.start,
} else if (snapshot.hasData) { children: [
if (snapshot.data!.isEmpty) { Padding(
return const SizedBox.shrink(); padding:
} const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
final collectionsWithThumbnail = child: Text(
snapshot.data as List<CollectionWithThumbnail>; S.of(context).albums,
return Align( style: getEnteTextTheme(context).large,
alignment: Alignment.centerLeft,
child: SizedBox(
height: 147, //139 + 8 (calculated from figma design)
child: ListView.separated(
separatorBuilder: (context, index) =>
const SizedBox(width: 4),
scrollDirection: Axis.horizontal,
itemCount: collectionsWithThumbnail.length,
padding: const EdgeInsets.symmetric(horizontal: 8),
itemBuilder: (context, index) {
final item = collectionsWithThumbnail[index];
return CollectionItem(
item,
120,
shouldRender: true,
showFileCount: false,
);
},
), ),
), ),
); Align(
} else { alignment: Alignment.centerLeft,
return const EnteLoadingWidget(); child: SizedBox(
} height: 147, //139 + 8 (calculated from figma design)
}, child: ListView.separated(
), separatorBuilder: (context, index) =>
], const SizedBox(width: 4),
scrollDirection: Axis.horizontal,
itemCount: collectionsWithThumbnail.length,
padding: const EdgeInsets.symmetric(horizontal: 8),
itemBuilder: (context, index) {
final item = collectionsWithThumbnail[index];
return CollectionItem(
item,
120,
shouldRender: true,
showFileCount: false,
);
},
),
),
),
],
),
);
} else {
return const Padding(
padding: EdgeInsets.only(bottom: 24, top: 8),
child: EnteLoadingWidget(),
);
}
},
); );
} }
} }

View file

@ -67,11 +67,8 @@ class ArchivePage extends StatelessWidget {
emptyState: EmptyState( emptyState: EmptyState(
text: S.of(context).youDontHaveAnyArchivedItems, text: S.of(context).youDontHaveAnyArchivedItems,
), ),
header: Padding( header: AlbumHorizontalListWidget(
padding: const EdgeInsets.only(bottom: 24, top: 8), CollectionsService.instance.getArchivedCollectionWithThumb,
child: AlbumHorizontalListWidget(
CollectionsService.instance.getArchivedCollectionWithThumb,
),
), ),
); );
return Scaffold( return Scaffold(