mirror of
https://github.com/git-touch/git-touch
synced 2025-02-20 13:30:38 +01:00
feat: add placeholder for empty list
This commit is contained in:
parent
2da8475e8b
commit
5298c8736f
@ -189,7 +189,7 @@ class _SettingsProviderState extends State<SettingsProvider> {
|
||||
// activeLogin = null;
|
||||
// ready = true;
|
||||
});
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
|
||||
// http timeout
|
||||
|
@ -4,6 +4,7 @@ import 'package:flutter/widgets.dart';
|
||||
import '../providers/settings.dart';
|
||||
import '../widgets/error_reload.dart';
|
||||
import '../widgets/loading.dart';
|
||||
import '../widgets/empty.dart';
|
||||
|
||||
class ListPayload<T, K> {
|
||||
K cursor;
|
||||
@ -132,6 +133,8 @@ class _ListScaffoldState<T, K> extends State<ListScaffold<T, K>> {
|
||||
);
|
||||
} else if (loading) {
|
||||
return SliverToBoxAdapter(child: Loading(more: false));
|
||||
} else if (items.isEmpty) {
|
||||
return SliverToBoxAdapter(child: EmptyWidget());
|
||||
} else {
|
||||
return SliverList(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
@ -147,6 +150,8 @@ class _ListScaffoldState<T, K> extends State<ListScaffold<T, K>> {
|
||||
return ErrorReload(text: error, reload: _refresh);
|
||||
} else if (loading) {
|
||||
return Loading(more: false);
|
||||
} else if (items.isEmpty) {
|
||||
return EmptyWidget();
|
||||
} else {
|
||||
return ListView.builder(
|
||||
controller: _controller,
|
||||
|
@ -6,6 +6,7 @@ import '../providers/settings.dart';
|
||||
import '../widgets/notification_item.dart';
|
||||
import '../widgets/list_group.dart';
|
||||
import '../widgets/link.dart';
|
||||
import '../widgets/empty.dart';
|
||||
import '../utils/utils.dart';
|
||||
|
||||
String getRepoKey(NotificationGroup group) {
|
||||
@ -249,10 +250,12 @@ $key: pullRequest(number: ${item.number}) {
|
||||
loading: loading,
|
||||
error: error,
|
||||
bodyBuilder: () {
|
||||
return Column(
|
||||
children: groupMap.entries
|
||||
.map((entry) => _buildGroupItem(context, entry))
|
||||
.toList());
|
||||
return groupMap.isEmpty
|
||||
? EmptyWidget()
|
||||
: Column(
|
||||
children: groupMap.entries
|
||||
.map((entry) => _buildGroupItem(context, entry))
|
||||
.toList());
|
||||
},
|
||||
);
|
||||
}
|
||||
|
@ -1 +0,0 @@
|
||||
export 'package:github/server.dart';
|
@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import '../providers/settings.dart';
|
||||
import '../screens/repo.dart';
|
||||
export 'github.dart';
|
||||
export 'package:github/server.dart';
|
||||
export 'octicons.dart';
|
||||
export 'timeago.dart';
|
||||
|
||||
@ -14,9 +14,9 @@ Color convertColor(String cssHex) {
|
||||
return Color(int.parse('ff' + cssHex, radix: 16));
|
||||
}
|
||||
|
||||
void nextTick(Function callback) {
|
||||
void nextTick(Function callback, [int milliseconds = 0]) {
|
||||
// FIXME:
|
||||
Future.delayed(Duration(milliseconds: 100)).then((_) {
|
||||
Future.delayed(Duration(milliseconds: 0)).then((_) {
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
11
lib/widgets/empty.dart
Normal file
11
lib/widgets/empty.dart
Normal file
@ -0,0 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class EmptyWidget extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 50),
|
||||
child: Center(child: Text('Empty', style: TextStyle(fontSize: 18))),
|
||||
);
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../widgets/empty.dart';
|
||||
|
||||
class ListGroup<T> extends StatelessWidget {
|
||||
final Widget title;
|
||||
@ -30,7 +31,10 @@ class ListGroup<T> extends StatelessWidget {
|
||||
color: Color(0x10000000),
|
||||
child: title,
|
||||
),
|
||||
Column(children: items.asMap().entries.map(_buildItem).toList())
|
||||
items.isEmpty
|
||||
? EmptyWidget()
|
||||
: Column(
|
||||
children: items.asMap().entries.map(_buildItem).toList())
|
||||
],
|
||||
),
|
||||
),
|
||||
|
Loading…
x
Reference in New Issue
Block a user