improved empty collection placeholder
This commit is contained in:
parent
805b0ef51f
commit
50632b5212
3 changed files with 31 additions and 7 deletions
|
@ -2,6 +2,14 @@ import 'package:flutter/material.dart';
|
|||
import 'package:outline_material_icons/outline_material_icons.dart';
|
||||
|
||||
class EmptyContent extends StatelessWidget {
|
||||
final IconData icon;
|
||||
final String text;
|
||||
|
||||
const EmptyContent({
|
||||
this.icon = OMIcons.photo,
|
||||
this.text = 'Nothing!',
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
const color = Color(0xFF607D8B);
|
||||
|
@ -9,16 +17,16 @@ class EmptyContent extends StatelessWidget {
|
|||
alignment: const FractionalOffset(.5, .35),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: const [
|
||||
children: [
|
||||
Icon(
|
||||
OMIcons.photo,
|
||||
icon,
|
||||
size: 64,
|
||||
color: color,
|
||||
),
|
||||
SizedBox(height: 16),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'Nothing!',
|
||||
style: TextStyle(
|
||||
text,
|
||||
style: const TextStyle(
|
||||
color: color,
|
||||
fontSize: 22,
|
||||
fontFamily: 'Concourse',
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import 'package:aves/model/collection_lens.dart';
|
||||
import 'package:aves/model/filters/favourite.dart';
|
||||
import 'package:aves/model/filters/video.dart';
|
||||
import 'package:aves/widgets/album/collection_app_bar.dart';
|
||||
import 'package:aves/widgets/album/collection_page.dart';
|
||||
import 'package:aves/widgets/album/collection_scaling.dart';
|
||||
|
@ -7,6 +9,7 @@ import 'package:aves/widgets/album/empty.dart';
|
|||
import 'package:aves/widgets/common/scroll_thumb.dart';
|
||||
import 'package:draggable_scrollbar/draggable_scrollbar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:outline_material_icons/outline_material_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ThumbnailCollection extends StatelessWidget {
|
||||
|
@ -54,7 +57,7 @@ class ThumbnailCollection extends StatelessWidget {
|
|||
),
|
||||
if (collection.isEmpty)
|
||||
SliverFillRemaining(
|
||||
child: EmptyContent(),
|
||||
child: _buildEmptyCollectionPlaceholder(collection),
|
||||
hasScrollBody: false,
|
||||
),
|
||||
...sectionKeys.map((sectionKey) => SectionSliver(
|
||||
|
@ -99,4 +102,17 @@ class ThumbnailCollection extends StatelessWidget {
|
|||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildEmptyCollectionPlaceholder(CollectionLens collection) {
|
||||
return collection.filters.any((filter) => filter is FavouriteFilter)
|
||||
? const EmptyContent(
|
||||
icon: OMIcons.favoriteBorder,
|
||||
text: 'No favourite!',
|
||||
)
|
||||
: collection.filters.any((filter) => filter is VideoFilter)
|
||||
? const EmptyContent(
|
||||
icon: OMIcons.movie,
|
||||
)
|
||||
: const EmptyContent();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ class StatsPage extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
Widget child;
|
||||
if (collection.isEmpty) {
|
||||
child = EmptyContent();
|
||||
child = const EmptyContent();
|
||||
} else {
|
||||
final catalogued = entries.where((entry) => entry.isCatalogued);
|
||||
final withGps = catalogued.where((entry) => entry.hasGps);
|
||||
|
|
Loading…
Reference in a new issue