From 26b78a31a649a883f948fedf4a39aed17789cab0 Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Sun, 2 Oct 2022 12:49:55 +0800 Subject: [PATCH] chore: style tweaks --- lib/screens/bb_explore.dart | 4 +- lib/screens/bb_user.dart | 6 +- lib/screens/ge_repos.dart | 5 +- lib/screens/ge_search.dart | 4 +- lib/screens/ge_user.dart | 4 +- lib/screens/gh_repos.dart | 8 +- lib/screens/gh_search.dart | 4 +- lib/screens/gh_trending.dart | 4 +- lib/screens/gh_user.dart | 73 +++++++++---------- lib/screens/gl_explore.dart | 4 +- lib/screens/gl_group.dart | 4 +- lib/screens/gl_search.dart | 4 +- lib/screens/gl_user.dart | 4 +- lib/screens/go_repos.dart | 5 +- lib/screens/go_user.dart | 4 +- lib/screens/gt_repos.dart | 5 +- lib/screens/gt_user.dart | 6 +- .../{repository_item.dart => repo_item.dart} | 19 ++--- 18 files changed, 78 insertions(+), 89 deletions(-) rename lib/widgets/{repository_item.dart => repo_item.dart} (95%) diff --git a/lib/screens/bb_explore.dart b/lib/screens/bb_explore.dart index 627dc06..690b343 100644 --- a/lib/screens/bb_explore.dart +++ b/lib/screens/bb_explore.dart @@ -4,7 +4,7 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:provider/provider.dart'; class BbExploreScreen extends StatelessWidget { @@ -24,7 +24,7 @@ class BbExploreScreen extends StatelessWidget { ); }, itemBuilder: (v) { - return RepositoryItem.bb(payload: v); + return RepoItem.bb(payload: v); }, ); } diff --git a/lib/screens/bb_user.dart b/lib/screens/bb_user.dart index 4fd83c4..b48b002 100644 --- a/lib/screens/bb_user.dart +++ b/lib/screens/bb_user.dart @@ -4,7 +4,7 @@ import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/refresh_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; @@ -58,9 +58,7 @@ class BbUserScreen extends StatelessWidget { ), CommonStyle.border, Column( - children: [ - for (var v in repos) RepositoryItem.bb(payload: v) - ], + children: [for (var v in repos) RepoItem.bb(payload: v)], ) ], ); diff --git a/lib/screens/ge_repos.dart b/lib/screens/ge_repos.dart index 4fca642..0702a2b 100644 --- a/lib/screens/ge_repos.dart +++ b/lib/screens/ge_repos.dart @@ -3,12 +3,11 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; class GeReposScreen extends StatelessWidget { - const GeReposScreen(String owner) : api = '/users/$owner/repos', title = 'Repositories'; @@ -35,7 +34,7 @@ class GeReposScreen extends StatelessWidget { ); }, itemBuilder: (v) { - return RepositoryItem( + return RepoItem( owner: v.namespace!.path, avatarUrl: v.owner!.avatarUrl, name: v.path, diff --git a/lib/screens/ge_search.dart b/lib/screens/ge_search.dart index 9b1d1bb..9808b36 100644 --- a/lib/screens/ge_search.dart +++ b/lib/screens/ge_search.dart @@ -8,7 +8,7 @@ import 'package:git_touch/scaffolds/common.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/issue_item.dart'; import 'package:git_touch/widgets/loading.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; @@ -85,7 +85,7 @@ class _GeSearchScreenState extends State { Widget _buildItem(p) { switch (_activeTab) { case 0: - return RepositoryItem( + return RepoItem( owner: p.namespace.path, avatarUrl: p.owner.avatarUrl, name: p.path, diff --git a/lib/screens/ge_user.dart b/lib/screens/ge_user.dart index 824ef14..dd97593 100644 --- a/lib/screens/ge_user.dart +++ b/lib/screens/ge_user.dart @@ -8,7 +8,7 @@ import 'package:git_touch/widgets/action_button.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/entry_item.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -99,7 +99,7 @@ class GeUserScreen extends StatelessWidget { Column( children: [ for (var v in repos) - RepositoryItem( + RepoItem( owner: v.namespace!.path, avatarUrl: v.owner!.avatarUrl, name: v.path, diff --git a/lib/screens/gh_repos.dart b/lib/screens/gh_repos.dart index d0771b2..5ec10e8 100644 --- a/lib/screens/gh_repos.dart +++ b/lib/screens/gh_repos.dart @@ -2,7 +2,7 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:gql_github/repos.data.gql.dart'; import 'package:gql_github/repos.req.gql.dart'; import 'package:provider/provider.dart'; @@ -31,8 +31,7 @@ class GhRepos extends StatelessWidget { ); }, itemBuilder: (p) { - return RepositoryItem.gql(p, - note: 'Updated ${timeago.format(p.updatedAt)}'); + return RepoItem.gql(p, note: 'Updated ${timeago.format(p.updatedAt)}'); }, ); } @@ -61,8 +60,7 @@ class GhStars extends StatelessWidget { ); }, itemBuilder: (p) { - return RepositoryItem.gql(p, - note: 'Updated ${timeago.format(p.updatedAt)}'); + return RepoItem.gql(p, note: 'Updated ${timeago.format(p.updatedAt)}'); }, ); } diff --git a/lib/screens/gh_search.dart b/lib/screens/gh_search.dart index 367b0c2..770a3aa 100644 --- a/lib/screens/gh_search.dart +++ b/lib/screens/gh_search.dart @@ -7,7 +7,7 @@ import 'package:git_touch/scaffolds/common.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/issue_item.dart'; import 'package:git_touch/widgets/loading.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; @@ -138,7 +138,7 @@ class _GhSearchScreenState extends State { switch (_activeTab) { case 0: final updatedAt = timeago.format(DateTime.parse(p['updatedAt'])); - return RepositoryItem.gh( + return RepoItem.gh( owner: p['owner']['login'], avatarUrl: p['owner']['avatarUrl'], name: p['name'], diff --git a/lib/screens/gh_trending.dart b/lib/screens/gh_trending.dart index de6bab6..e25a726 100644 --- a/lib/screens/gh_trending.dart +++ b/lib/screens/gh_trending.dart @@ -6,7 +6,7 @@ import 'package:git_touch/scaffolds/tab_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/link.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:github_trending/github_trending.dart'; import 'package:provider/provider.dart'; @@ -38,7 +38,7 @@ class GhTrendingScreen extends StatelessWidget { activeTab == 0 ? [ for (var v in payload.cast()) - RepositoryItem.gh( + RepoItem.gh( owner: v.author, avatarUrl: v.avatar, name: v.name, diff --git a/lib/screens/gh_user.dart b/lib/screens/gh_user.dart index ea9453c..8e3d26f 100644 --- a/lib/screens/gh_user.dart +++ b/lib/screens/gh_user.dart @@ -12,7 +12,7 @@ import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/contribution.dart'; import 'package:git_touch/widgets/entry_item.dart'; import 'package:git_touch/widgets/mutation_button.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/text_with_at.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:go_router/go_router.dart'; @@ -33,10 +33,9 @@ class _Repos extends StatelessWidget { Widget build(BuildContext context) { return AntList( header: Text(title), - mode: AntListMode.card, children: [ for (final v in repos!) - RepositoryItem.gh( + RepoItem.gh( owner: v.owner.login, avatarUrl: v.owner.avatarUrl, name: v.name, @@ -109,7 +108,6 @@ class _User extends StatelessWidget { ), CommonStyle.border, AntList( - mode: AntListMode.card, children: [ if (isNotNullOrEmpty(p.company)) AntListItem( @@ -154,7 +152,6 @@ class _User extends StatelessWidget { ), CommonStyle.verticalGap, AntList( - mode: AntListMode.card, children: [ AntListItem( prefix: const Icon(Octicons.organization), @@ -327,39 +324,41 @@ class GhUserScreen extends StatelessWidget { ), ], ), - AntList(mode: AntListMode.card, children: [ - if (isNotNullOrEmpty(p.location)) - AntListItem( - prefix: const Icon(Octicons.location), - child: Text(p.location!), - onClick: () { - launchStringUrl( - 'https://www.google.com/maps/place/${p.location!.replaceAll(RegExp(r'\s+'), '')}'); - }, - ), - if (isNotNullOrEmpty(p.email)) - AntListItem( - prefix: const Icon(Octicons.mail), - child: Text(p.email!), - onClick: () { - launchStringUrl('mailto:${p.email!}'); - }, - ), - if (isNotNullOrEmpty(p.websiteUrl)) - AntListItem( - prefix: const Icon(Octicons.link), - child: Text(p.websiteUrl!), - onClick: () { - var url = p.websiteUrl!; - if (!url.startsWith('http')) { - url = 'http://$url'; - } - launchStringUrl(url); - }, - ), - ]), AntList( - mode: AntListMode.card, + children: [ + if (isNotNullOrEmpty(p.location)) + AntListItem( + prefix: const Icon(Octicons.location), + child: Text(p.location!), + onClick: () { + launchStringUrl( + 'https://www.google.com/maps/place/${p.location!.replaceAll(RegExp(r'\s+'), '')}'); + }, + ), + if (isNotNullOrEmpty(p.email)) + AntListItem( + prefix: const Icon(Octicons.mail), + child: Text(p.email!), + onClick: () { + launchStringUrl('mailto:${p.email!}'); + }, + ), + if (isNotNullOrEmpty(p.websiteUrl)) + AntListItem( + prefix: const Icon(Octicons.link), + child: Text(p.websiteUrl!), + onClick: () { + var url = p.websiteUrl!; + if (!url.startsWith('http')) { + url = 'http://$url'; + } + launchStringUrl(url); + }, + ), + ], + ), + CommonStyle.verticalGap, + AntList( children: [ AntListItem( prefix: const Icon(Octicons.repo), diff --git a/lib/screens/gl_explore.dart b/lib/screens/gl_explore.dart index bff658e..e220401 100644 --- a/lib/screens/gl_explore.dart +++ b/lib/screens/gl_explore.dart @@ -4,7 +4,7 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitlab.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -27,7 +27,7 @@ class GlExploreScreen extends StatelessWidget { ); }, itemBuilder: (v) { - return RepositoryItem.gl( + return RepoItem.gl( payload: v, note: 'Updated ${timeago.format(v.lastActivityAt!)}', ); diff --git a/lib/screens/gl_group.dart b/lib/screens/gl_group.dart index f1c79ee..9448a60 100644 --- a/lib/screens/gl_group.dart +++ b/lib/screens/gl_group.dart @@ -5,7 +5,7 @@ import 'package:git_touch/models/gitlab.dart'; import 'package:git_touch/scaffolds/refresh_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/entry_item.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -53,7 +53,7 @@ class GlGroupScreen extends StatelessWidget { Column( children: [ for (var v in p.projects!) - RepositoryItem.gl( + RepoItem.gl( payload: v, note: 'Updated ${timeago.format(v.lastActivityAt!)}', ) diff --git a/lib/screens/gl_search.dart b/lib/screens/gl_search.dart index 5939aa0..d180f70 100644 --- a/lib/screens/gl_search.dart +++ b/lib/screens/gl_search.dart @@ -7,7 +7,7 @@ import 'package:git_touch/models/theme.dart'; import 'package:git_touch/scaffolds/common.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/loading.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; @@ -77,7 +77,7 @@ class _GlSearchScreenState extends State { if (_activeTab == 0) { final p = project as GitlabProject; final updatedAt = timeago.format(p.lastActivityAt!); - return RepositoryItem.gl( + return RepoItem.gl( payload: p, note: 'Updated $updatedAt', ); diff --git a/lib/screens/gl_user.dart b/lib/screens/gl_user.dart index b37bf37..d77aadc 100644 --- a/lib/screens/gl_user.dart +++ b/lib/screens/gl_user.dart @@ -5,7 +5,7 @@ import 'package:git_touch/models/gitlab.dart'; import 'package:git_touch/scaffolds/refresh_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -58,7 +58,7 @@ class GlUserScreen extends StatelessWidget { Column( children: [ for (var v in projects) - RepositoryItem.gl( + RepoItem.gl( payload: v, note: 'Updated ${timeago.format(v.lastActivityAt!)}', ) diff --git a/lib/screens/go_repos.dart b/lib/screens/go_repos.dart index 57e6c82..3fdea63 100644 --- a/lib/screens/go_repos.dart +++ b/lib/screens/go_repos.dart @@ -3,11 +3,10 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gogs.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:provider/provider.dart'; class GoReposScreen extends StatelessWidget { - const GoReposScreen(String owner, {this.isViewer = false}) : api = isViewer ? '/users/$owner/repos' : '/user/repos', title = 'Repositories'; @@ -33,7 +32,7 @@ class GoReposScreen extends StatelessWidget { ); }, itemBuilder: (v) { - return RepositoryItem.go( + return RepoItem.go( payload: v, name: v.fullName!.split('/')[1], owner: v.owner!.username, diff --git a/lib/screens/go_user.dart b/lib/screens/go_user.dart index a14da65..81993bf 100644 --- a/lib/screens/go_user.dart +++ b/lib/screens/go_user.dart @@ -6,7 +6,7 @@ import 'package:git_touch/scaffolds/refresh_stateful.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/entry_item.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; @@ -87,7 +87,7 @@ class GoUserScreen extends StatelessWidget { Column( children: [ for (var v in repos) ...[ - RepositoryItem.go( + RepoItem.go( payload: v, name: v.fullName!.split('/')[1], owner: v.owner!.username, diff --git a/lib/screens/gt_repos.dart b/lib/screens/gt_repos.dart index 41ac7c0..cb7578a 100644 --- a/lib/screens/gt_repos.dart +++ b/lib/screens/gt_repos.dart @@ -3,12 +3,11 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitea.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; class GtReposScreen extends StatelessWidget { - const GtReposScreen(String owner) : api = '/users/$owner/repos', title = 'Repositories'; @@ -38,7 +37,7 @@ class GtReposScreen extends StatelessWidget { ); }, itemBuilder: (v) { - return RepositoryItem( + return RepoItem( owner: v.owner!.login, avatarUrl: v.owner!.avatarUrl, name: v.name, diff --git a/lib/screens/gt_user.dart b/lib/screens/gt_user.dart index 070592d..d5df574 100644 --- a/lib/screens/gt_user.dart +++ b/lib/screens/gt_user.dart @@ -7,7 +7,7 @@ import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/contribution.dart'; import 'package:git_touch/widgets/entry_item.dart'; -import 'package:git_touch/widgets/repository_item.dart'; +import 'package:git_touch/widgets/repo_item.dart'; import 'package:git_touch/widgets/user_header.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; @@ -145,7 +145,7 @@ class GtUserScreen extends StatelessWidget { Column( children: [ for (var v in p.userRepos) - RepositoryItem( + RepoItem( owner: v.owner!.login, avatarUrl: v.owner!.avatarUrl, name: v.name, @@ -187,7 +187,7 @@ class GtUserScreen extends StatelessWidget { Column( children: [ for (var v in p.orgRepos) - RepositoryItem( + RepoItem( owner: v.owner!.login, avatarUrl: v.owner!.avatarUrl, name: v.name, diff --git a/lib/widgets/repository_item.dart b/lib/widgets/repo_item.dart similarity index 95% rename from lib/widgets/repository_item.dart rename to lib/widgets/repo_item.dart index 48ab6bd..deda51b 100644 --- a/lib/widgets/repository_item.dart +++ b/lib/widgets/repo_item.dart @@ -5,16 +5,14 @@ import 'package:from_css_color/from_css_color.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/models/gitlab.dart'; import 'package:git_touch/models/gogs.dart'; -import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/avatar.dart'; import 'package:github/github.dart' as github; import 'package:gql_github/repos.data.gql.dart'; -import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; -class RepositoryItem extends StatelessWidget { - const RepositoryItem({ +class RepoItem extends StatelessWidget { + const RepoItem({ required this.owner, required this.avatarUrl, required this.name, @@ -29,7 +27,7 @@ class RepositoryItem extends StatelessWidget { required this.avatarLink, }); - RepositoryItem.go({ + RepoItem.go({ required GogsRepository payload, this.primaryLanguageName, this.primaryLanguageColor, @@ -44,7 +42,7 @@ class RepositoryItem extends StatelessWidget { starCount = payload.starsCount, iconData = payload.private! ? Octicons.lock : null; - RepositoryItem.bb({ + RepoItem.bb({ required BbRepo payload, this.primaryLanguageName, this.primaryLanguageColor, @@ -59,7 +57,7 @@ class RepositoryItem extends StatelessWidget { starCount = 0, iconData = payload.isPrivate! ? Octicons.lock : null; - RepositoryItem.gl({ + RepoItem.gl({ required GitlabProject payload, this.primaryLanguageName, this.primaryLanguageColor, @@ -76,7 +74,7 @@ class RepositoryItem extends StatelessWidget { : '/gitlab/user/${payload.namespace!.id}', iconData = _buildGlIconData(payload.visibility); - RepositoryItem.gh({ + RepoItem.gh({ required this.owner, required this.avatarUrl, required this.name, @@ -92,8 +90,8 @@ class RepositoryItem extends StatelessWidget { avatarLink = '/github/$owner', url = '/github/$owner/$name'; - factory RepositoryItem.gql(GRepoParts v, {String? note}) { - return RepositoryItem.gh( + factory RepoItem.gql(GRepoParts v, {String? note}) { + return RepoItem.gh( owner: v.owner.login, avatarUrl: v.owner.avatarUrl, name: v.name, @@ -141,7 +139,6 @@ class RepositoryItem extends StatelessWidget { @override Widget build(BuildContext context) { - final theme = Provider.of(context); return AntListItem( arrow: null, onClick: () {