From 755aba7727939a74a66516469b48cd6c71881617 Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Thu, 3 Oct 2019 10:12:22 +0800 Subject: [PATCH] fix: user type --- lib/screens/repository.dart | 20 +------------------- lib/widgets/avatar.dart | 24 ++---------------------- lib/widgets/comment_item.dart | 7 ++++--- lib/widgets/event_item.dart | 6 +++--- lib/widgets/issue_item.dart | 9 ++++++--- lib/widgets/repository_item.dart | 12 +++++++++--- 6 files changed, 25 insertions(+), 53 deletions(-) diff --git a/lib/screens/repository.dart b/lib/screens/repository.dart index 9ae2172..b7a9a26 100644 --- a/lib/screens/repository.dart +++ b/lib/screens/repository.dart @@ -38,16 +38,8 @@ class RepositoryScreen extends StatelessWidget { var data = await Provider.of(context).query(''' { repository(owner: "$owner", name: "$name") { + $repoChunk id - owner { - __typename - login - avatarUrl - } - name - isPrivate - isFork - description diskUsage hasIssuesEnabled url @@ -57,16 +49,6 @@ class RepositoryScreen extends StatelessWidget { watchers { totalCount } - stargazers { - totalCount - } - forks { - totalCount - } - primaryLanguage { - color - name - } issues(states: OPEN) { totalCount } diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart index 47f045e..2394c54 100644 --- a/lib/widgets/avatar.dart +++ b/lib/widgets/avatar.dart @@ -1,38 +1,27 @@ import 'package:flutter/material.dart'; -import 'package:flutter/cupertino.dart'; -import '../screens/user.dart'; -import 'link.dart'; class Avatar extends StatelessWidget { final String url; - final String login; final double size; Avatar({ @required this.url, - this.login, @required this.size, }); Avatar.extraSmall({ @required this.url, - this.login, }) : size = 16; - Avatar.small({ - @required this.url, - this.login, - }) : size = 24; + Avatar.small({@required this.url}) : size = 24; Avatar.medium({ @required this.url, - this.login, }) : size = 36; Avatar.large({ @required this.url, - this.login, }) : size = 48; @override Widget build(BuildContext context) { - var avatar = ClipRRect( + return ClipRRect( borderRadius: BorderRadius.circular(4), child: FadeInImage.assetNetwork( placeholder: 'images/octoface.png', @@ -43,14 +32,5 @@ class Avatar extends StatelessWidget { fadeOutDuration: Duration(milliseconds: 100), ), ); - - if (login == null) { - return avatar; - } else { - return Link( - screenBuilder: (_) => UserScreen(login), - child: avatar, - ); - } } } diff --git a/lib/widgets/comment_item.dart b/lib/widgets/comment_item.dart index 35329b7..3d6a088 100644 --- a/lib/widgets/comment_item.dart +++ b/lib/widgets/comment_item.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:git_touch/models/theme.dart'; +import 'package:git_touch/screens/user.dart'; import 'package:git_touch/widgets/markdown_view.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -43,9 +44,9 @@ class CommentItem extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Row(children: [ - Avatar.medium( - url: payload['author']['avatarUrl'], - login: payload['author']['login'], + Link( + child: Avatar.medium(url: payload['author']['avatarUrl']), + screenBuilder: (_) => UserScreen(payload['author']['login']), ), SizedBox(width: 8), Expanded( diff --git a/lib/widgets/event_item.dart b/lib/widgets/event_item.dart index a78c2c6..b169014 100644 --- a/lib/widgets/event_item.dart +++ b/lib/widgets/event_item.dart @@ -79,9 +79,9 @@ class EventItem extends StatelessWidget { Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Avatar.medium( - url: event.actorAvatarUrl, - login: event.actorLogin, + Link( + child: Avatar.medium(url: event.actorAvatarUrl), + screenBuilder: (_) => UserScreen(event.actorLogin), ), SizedBox(width: 10), Expanded( diff --git a/lib/widgets/issue_item.dart b/lib/widgets/issue_item.dart index 39adf89..26e2df6 100644 --- a/lib/widgets/issue_item.dart +++ b/lib/widgets/issue_item.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:git_touch/screens/user.dart'; import 'package:git_touch/widgets/avatar.dart'; import 'package:primer/primer.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -120,9 +121,11 @@ class IssueItem extends StatelessWidget { children: [ // FIXME: Deleted user if (payload['author'] != null) ...[ - Avatar.extraSmall( - login: payload['author']['login'], - url: payload['author']['avatarUrl'], + Link( + child: Avatar.extraSmall( + url: payload['author']['avatarUrl']), + screenBuilder: (_) => + UserScreen(payload['author']['login']), ), SizedBox(width: 4), Text( diff --git a/lib/widgets/repository_item.dart b/lib/widgets/repository_item.dart index b0a13ad..c643c89 100644 --- a/lib/widgets/repository_item.dart +++ b/lib/widgets/repository_item.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; +import 'package:git_touch/screens/organization.dart'; import 'package:git_touch/screens/repository.dart'; +import 'package:git_touch/screens/user.dart'; import 'package:git_touch/widgets/avatar.dart'; import 'package:primer/primer.dart'; import '../utils/utils.dart'; @@ -8,6 +10,7 @@ import 'link.dart'; const repoChunk = ''' owner { + __typename login avatarUrl } @@ -130,9 +133,12 @@ class RepositoryItem extends StatelessWidget { child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Avatar.small( - url: payload['owner']['avatarUrl'], - login: payload['owner']['login'], + Link( + child: Avatar.small(url: payload['owner']['avatarUrl']), + screenBuilder: (_) => + payload['owner']['__typename'] == 'Organization' + ? OrganizationScreen(payload['owner']['login']) + : UserScreen(payload['owner']['login']), ), SizedBox(width: 8), Expanded(