From 2b68d95a4af67c62fd8d201b690508f57f972e58 Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Tue, 6 Oct 2020 14:31:07 +0800 Subject: [PATCH] feat: add status for github and gitlab --- lib/screens/settings.dart | 42 +++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index d06ddb53..cd15ee96 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -13,12 +13,7 @@ import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; -class SettingsScreen extends StatefulWidget { - @override - _SettingsScreenState createState() => _SettingsScreenState(); -} - -class _SettingsScreenState extends State { +class SettingsScreen extends StatelessWidget { Widget _buildRightWidget(BuildContext context, bool checked) { final theme = Provider.of(context); if (!checked) return null; @@ -35,23 +30,35 @@ class _SettingsScreenState extends State { body: Column( children: [ CommonStyle.verticalGap, - TableView(headerText: 'accounts', items: [ - TableViewItem( - text: Text('Switch Accounts'), - url: '/login', - rightWidget: Text(auth.activeAccount.login), - ), - if (auth.activeAccount.platform == PlatformType.github) + TableView(headerText: 'system', items: [ + if (auth.activeAccount.platform == PlatformType.github) ...[ + TableViewItem( + text: Text('GitHub status'), + url: 'https://www.githubstatus.com/', + ), TableViewItem( text: Text('Review Permissions'), url: 'https://github.com/settings/connections/applications/$clientId', rightWidget: Text(auth.activeAccount.login), ), + ], + if (auth.activeAccount.platform == PlatformType.gitlab) + TableViewItem( + text: Text('GitLab status'), + url: '${auth.activeAccount.domain}/help', + rightWidget: FutureBuilder( + future: + auth.fetchGitlab('/version').then((v) => v['version']), + builder: (context, snapshot) { + return Text(snapshot.data ?? ''); + }, + ), + ), if (auth.activeAccount.platform == PlatformType.gitea) TableViewItem( leftIconData: Octicons.info, - text: Text('Gitea'), + text: Text('Gitea status'), url: '/gitea/status', rightWidget: FutureBuilder( future: auth.fetchGitea('/version').then((v) => v['version']), @@ -59,7 +66,12 @@ class _SettingsScreenState extends State { return Text(snapshot.data ?? ''); }, ), - ) + ), + TableViewItem( + text: Text('Switch accounts'), + url: '/login', + rightWidget: Text(auth.activeAccount.login), + ), ]), CommonStyle.verticalGap, TableView(headerText: 'theme', items: [