From 1da807632bbb08c097210a9123958647d3f045df Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Mon, 5 Oct 2020 17:31:17 +0800 Subject: [PATCH] feat(gt): org repos --- lib/router.dart | 2 ++ lib/screens/gt_repos.dart | 3 +++ lib/screens/gt_user.dart | 34 ++++++++++------------------------ 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/lib/router.dart b/lib/router.dart index d230285..b3bd04e 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -277,6 +277,8 @@ class GiteaRouter { return GtReposScreen.star(login); case 'repositories': return GtReposScreen(login); + case 'orgrepo': + return GtReposScreen.org(login); default: return GtUserScreen(login); } diff --git a/lib/screens/gt_repos.dart b/lib/screens/gt_repos.dart index a975b9c..ee5b989 100644 --- a/lib/screens/gt_repos.dart +++ b/lib/screens/gt_repos.dart @@ -18,6 +18,9 @@ class GtReposScreen extends StatelessWidget { GtReposScreen.star(this.owner) : api = '/users/$owner/starred', title = 'Stars'; + GtReposScreen.org(this.owner) + : api = '/orgs/$owner/repos', + title = 'Repositories'; @override Widget build(BuildContext context) { diff --git a/lib/screens/gt_user.dart b/lib/screens/gt_user.dart index bc7a7eb..d58a658 100644 --- a/lib/screens/gt_user.dart +++ b/lib/screens/gt_user.dart @@ -15,7 +15,7 @@ import 'package:timeago/timeago.dart' as timeago; class GtUserScreenPayload { Tuple3, List>> user; - Tuple2> org; + GiteaOrg org; } class GtUserScreen extends StatelessWidget { @@ -42,16 +42,12 @@ class GtUserScreen extends StatelessWidget { final userRepos = res[1]; final userHeatmap = res[2]; final org = res[3]; - final orgRepos = res[4]; final payload = GtUserScreenPayload(); // user api also returns data for org, use org api here. if (org['message'] == null) { // org - payload.org = Tuple2( - GiteaOrg.fromJson(org), - [for (var v in orgRepos) GiteaRepository.fromJson(v)], - ); + payload.org = GiteaOrg.fromJson(org); } else { // user final heatmapItems = [ @@ -138,8 +134,7 @@ class GtUserScreen extends StatelessWidget { ], ); } else if (data.org != null) { - final org = data.org.item1; - final repos = data.org.item2; + final org = data.org; return Column( children: [ @@ -151,22 +146,13 @@ class GtUserScreen extends StatelessWidget { bio: org.description, ), CommonStyle.border, - Column( - children: [ - for (var v in repos) - RepositoryItem( - owner: v.owner.login, - avatarUrl: v.owner.avatarUrl, - name: v.name, - description: v.description, - starCount: v.starsCount, - forkCount: v.forksCount, - note: 'Updated ${timeago.format(v.updatedAt)}', - url: '/gitea/${v.owner.login}/${v.name}', - avatarLink: '/gitea/${v.owner.login}', - ) - ], - ) + Row(children: [ + EntryItem( + count: 0, + text: 'Repositories', + url: '/gitea/$login?tab=orgrepo', + ), + ]), ], ); } else {