refactor: extract loading widget

This commit is contained in:
Rongjian Zhang
2019-01-31 15:23:52 +08:00
parent 15f86d99b1
commit 7d6557d02c
5 changed files with 69 additions and 34 deletions

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import '../widgets/widgets.dart';
import '../widgets/loading.dart';
// Widget of issue screen and pull request screen
class IssuePullRequestScreen extends StatefulWidget {
@@ -39,7 +40,7 @@ class _IssuePullRequestScreenState extends State<IssuePullRequestScreen> {
Widget _buildBody(BuildContext context) {
if (payload == null) {
return CupertinoActivityIndicator();
return Loading();
}
List items = payload['timeline']['nodes'];

39
lib/widgets/loading.dart Normal file
View File

@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import '../providers/settings.dart';
class Loading extends StatelessWidget {
final bool more;
Loading({this.more});
Widget _buildIndicator(BuildContext context) {
switch (SettingsProvider.of(context).layout) {
case LayoutMap.cupertino:
return CupertinoActivityIndicator(radius: 12);
default:
return Center(
child: SizedBox(
width: 24,
height: 24,
child: CircularProgressIndicator(),
),
);
}
}
@override
Widget build(BuildContext context) {
if (more) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 20),
child: _buildIndicator(context),
);
} else {
return Padding(
padding: EdgeInsets.symmetric(vertical: 40),
child: _buildIndicator(context),
);
}
}
}