diff --git a/lib/graphql/github_commits.dart b/lib/graphql/github_commits.dart index 3fd2968..69a7c22 100644 --- a/lib/graphql/github_commits.dart +++ b/lib/graphql/github_commits.dart @@ -488,6 +488,12 @@ class GithubCommitsQuery arguments: [], directives: [], selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: '__typename'), + alias: null, + arguments: [], + directives: [], + selectionSet: null), InlineFragmentNode( typeCondition: TypeConditionNode( on: NamedTypeNode( @@ -550,12 +556,6 @@ class GithubCommitsQuery selectionSet: null) ])) ])), - FieldNode( - name: NameNode(value: '__typename'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'history'), alias: null, diff --git a/lib/graphql/github_commits.graphql b/lib/graphql/github_commits.graphql index 82370d4..18e54a7 100644 --- a/lib/graphql/github_commits.graphql +++ b/lib/graphql/github_commits.graphql @@ -1,5 +1,6 @@ fragment T on Ref { target { + __typename ... on Commit { oid url @@ -15,7 +16,6 @@ fragment T on Ref { # status { # state # } - __typename history(first: 30, after: $after) { pageInfo { hasNextPage diff --git a/lib/screens/commits.dart b/lib/screens/commits.dart index 61cd416..d2dd5f0 100644 --- a/lib/screens/commits.dart +++ b/lib/screens/commits.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:git_touch/graphql/github_commits.dart'; import 'package:git_touch/models/auth.dart'; +import 'package:git_touch/models/theme.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; @@ -8,7 +9,6 @@ import 'package:git_touch/widgets/link.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; import 'package:git_touch/widgets/avatar.dart'; -import 'package:primer/primer.dart'; final commitsRouter = RouterScreen( '/:owner/:name/commits', @@ -55,6 +55,8 @@ class CommitsScreen extends StatelessWidget { @override Widget build(BuildContext context) { + final theme = Provider.of(context); + return ListStatefulScaffold( title: AppBarTitle('Commits'), onRefresh: () => _query(context), @@ -67,27 +69,34 @@ class CommitsScreen extends StatelessWidget { child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Avatar(url: payload.author.avatarUrl), - SizedBox(width: 8), + Avatar(url: payload.author?.avatarUrl), + SizedBox(width: 10), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(payload.messageHeadline, - style: TextStyle( - fontWeight: FontWeight.w500, fontSize: 14)), + Text( + payload.messageHeadline, + style: TextStyle( + fontSize: 17, + color: theme.palette.text, + ), + overflow: TextOverflow.ellipsis, + ), SizedBox(height: 4), Wrap( children: [ Text( - payload.author.user?.login ?? payload.author.name, - style: TextStyle( - fontWeight: FontWeight.w500, fontSize: 14)), + payload.author?.user?.login ?? + payload.author.name, + style: TextStyle(fontSize: 15)), Text( - ' committed ' + - timeago.format(payload.committedDate), - style: TextStyle( - color: PrimerColors.gray600, fontSize: 14)), + ' committed ${timeago.format(payload.committedDate)}', + style: TextStyle( + color: theme.palette.secondaryText, + fontSize: 15, + ), + ), // if (payload['status'] != null) ...[ // SizedBox(width: 4), // _buildStatus(payload['status']['state']) diff --git a/lib/screens/repository.dart b/lib/screens/repository.dart index 21851d4..c243451 100644 --- a/lib/screens/repository.dart +++ b/lib/screens/repository.dart @@ -72,8 +72,6 @@ class RepositoryScreen extends StatelessWidget { }, actionBuilder: (data, setState) { final repo = data.item1; - final ref = branch == null ? repo.defaultBranchRef : repo.ref; - return ActionButton( title: 'Repository Actions', items: [ @@ -95,11 +93,6 @@ class RepositoryScreen extends StatelessWidget { // setState(() {}); // }, // ), - ActionItem( - text: - 'Commits (${(ref.target as GithubRepositoryCommit).history?.totalCount})', - url: '/$owner/$name/commits', - ), ActionItem( text: 'Projects (${repo.projects.totalCount})', url: repo.projectsUrl, @@ -336,6 +329,15 @@ class RepositoryScreen extends StatelessWidget { Text(numberFormat.format(repo.pullRequests.totalCount)), url: '/$owner/$name/pulls', ), + TableViewItem( + leftIconData: Octicons.history, + text: Text('Commits'), + rightWidget: Text((ref.target as GithubRepositoryCommit) + .history + ?.totalCount + .toString()), + url: '/$owner/$name/commits', + ), if (ref != null) ...[ if (repo.refs != null) TableViewItem(