1
0
mirror of https://github.com/git-touch/git-touch synced 2025-03-05 11:48:02 +01:00

feat(gt): stargazers, watchers and forks

This commit is contained in:
Rongjian Zhang 2020-10-05 18:20:00 +08:00
parent a87a504cea
commit 61ad3ebb16
4 changed files with 35 additions and 9 deletions

View File

@ -266,6 +266,9 @@ class GiteaRouter {
GiteaRouter.user,
GiteaRouter.repo,
GiteaRouter.object,
GiteaRouter.stargazers,
GiteaRouter.watchers,
GiteaRouter.forks,
GiteaRouter.commits,
GiteaRouter.issues,
GiteaRouter.pulls,
@ -303,6 +306,15 @@ class GiteaRouter {
path: params['path']?.first,
),
);
static final stargazers = RouterScreen('/:owner/:name/stargazers', (_, p) {
return GtUsersScreen.stargazers(p['owner'].first, p['name'].first);
});
static final watchers = RouterScreen('/:owner/:name/watchers', (_, p) {
return GtUsersScreen.watchers(p['owner'].first, p['name'].first);
});
static final forks = RouterScreen('/:owner/:name/forks', (_, p) {
return GtReposScreen.forks(p['owner'].first, p['name'].first);
});
static final commits = RouterScreen('/:owner/:name/commits',
(_, p) => GtCommitsScreen(p['owner'].first, p['name'].first));
static final issues = RouterScreen('/:owner/:name/issues',

View File

@ -50,13 +50,20 @@ class GtRepoScreen extends StatelessWidget {
CommonStyle.border,
Row(
children: <Widget>[
EntryItem(
count: 0,
text: 'Watchers',
url: '/gitea/$owner/$name/watchers',
),
EntryItem(
count: p.starsCount,
text: 'Stars',
url: '/gitea/$owner/$name/stargazers',
),
EntryItem(
count: p.forksCount,
text: 'Forks', // TODO:
text: 'Forks',
url: '/gitea/$owner/$name/forks',
),
],
),

View File

@ -8,19 +8,21 @@ import 'package:git_touch/widgets/repository_item.dart';
import 'package:timeago/timeago.dart' as timeago;
class GtReposScreen extends StatelessWidget {
final String owner;
final String api;
final String title;
GtReposScreen(this.owner)
GtReposScreen(String owner)
: api = '/users/$owner/repos',
title = 'Repositories';
GtReposScreen.star(this.owner)
GtReposScreen.star(String owner)
: api = '/users/$owner/starred',
title = 'Stars';
GtReposScreen.org(this.owner)
GtReposScreen.org(String owner)
: api = '/orgs/$owner/repos',
title = 'Repositories';
GtReposScreen.forks(String owner, String repo)
: api = '/repos/$owner/$repo/forks',
title = 'Forks';
@override
Widget build(BuildContext context) {

View File

@ -8,19 +8,24 @@ import 'package:provider/provider.dart';
import 'package:timeago/timeago.dart' as timeago;
class GtUsersScreen extends StatelessWidget {
final String login;
final String api;
final String title;
GtUsersScreen.followers(this.login)
GtUsersScreen.followers(String login)
: api = '/users/$login/followers',
title = 'Followers';
GtUsersScreen.following(this.login)
GtUsersScreen.following(String login)
: api = '/users/$login/following',
title = "Following";
GtUsersScreen.member(this.login)
GtUsersScreen.member(String login)
: api = '/orgs/$login/members',
title = "Members";
GtUsersScreen.stargazers(String owner, String repo)
: api = '/repos/$owner/$repo/stargazers',
title = 'Stargazers';
GtUsersScreen.watchers(String owner, String repo)
: api = '/repos/$owner/$repo/subscribers',
title = 'Watchers';
@override
Widget build(BuildContext context) {