diff --git a/lib/screens/repos.dart b/lib/screens/repos.dart index c80a5e0..eb9f880 100644 --- a/lib/screens/repos.dart +++ b/lib/screens/repos.dart @@ -7,8 +7,9 @@ import '../widgets/repo_item.dart'; /// Repos of user class ReposScreen extends StatefulWidget { final String login; + final bool star; - ReposScreen(this.login); + ReposScreen({this.login, this.star = false}); @override _ReposScreenState createState() => _ReposScreenState(); @@ -19,10 +20,13 @@ class _ReposScreenState extends State { Future _queryRepos([String cursor]) async { var cursorChunk = cursor == null ? '' : ', after: "$cursor"'; + var resouce = widget.star ? 'starredRepositories' : 'repositories'; + var fieldOrderBy = widget.star ? 'STARRED_AT' : 'UPDATED_AT'; + var data = await SettingsProvider.of(context).query(''' { user(login: "$login") { - repositories(first: $pageSize$cursorChunk, orderBy: {field: UPDATED_AT, direction: DESC}) { + $resouce(first: $pageSize$cursorChunk, orderBy: {field: $fieldOrderBy, direction: DESC}) { pageInfo { hasNextPage endCursor @@ -34,7 +38,7 @@ class _ReposScreenState extends State { } } '''); - var repo = data["user"]["repositories"]; + var repo = data["user"][resouce]; return ListPayload( cursor: repo["pageInfo"]["endCursor"], diff --git a/lib/screens/user.dart b/lib/screens/user.dart index eb9f49e..d79b72e 100644 --- a/lib/screens/user.dart +++ b/lib/screens/user.dart @@ -185,12 +185,14 @@ class _UserScreenState extends State { EntryItem( count: payload['repositories']['totalCount'], text: 'Repositories', - screenBuilder: (context) => ReposScreen(widget.login), + screenBuilder: (context) => + ReposScreen(login: widget.login), ), EntryItem( count: payload['starredRepositories']['totalCount'], text: 'Stars', - screenBuilder: (context) => ReposScreen(widget.login), + screenBuilder: (context) => + ReposScreen(login: widget.login, star: true), ), EntryItem( count: payload['followers']['totalCount'], diff --git a/lib/widgets/repo_item.dart b/lib/widgets/repo_item.dart index a688af0..6541d2d 100644 --- a/lib/widgets/repo_item.dart +++ b/lib/widgets/repo_item.dart @@ -33,7 +33,7 @@ class RepoItem extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - item['name'], + item['owner']['login'] + '/' + item['name'], style: TextStyle(fontWeight: FontWeight.w600, fontSize: 15), ), Padding(padding: EdgeInsets.only(top: 6)),