refactor: gql query names

This commit is contained in:
Rongjian Zhang 2022-09-18 16:21:35 +08:00
parent 66e14509de
commit ec99de2b6d
6 changed files with 36 additions and 41 deletions

View File

@ -3,7 +3,7 @@ fragment PageInfoParts on PageInfo {
hasNextPage
endCursor
}
fragment RepoItem on Repository {
fragment RepoParts on Repository {
owner {
login
avatarUrl
@ -23,7 +23,7 @@ fragment RepoItem on Repository {
name
}
}
fragment UserItem on User {
fragment UserParts on User {
login
name
avatarUrl
@ -84,7 +84,7 @@ query Followers($login: String!, $after: String) {
...PageInfoParts
}
nodes {
...UserItem
...UserParts
}
}
}
@ -96,7 +96,7 @@ query Following($login: String!, $after: String) {
...PageInfoParts
}
nodes {
...UserItem
...UserParts
}
}
}
@ -108,7 +108,7 @@ query Members($login: String!, $after: String) {
...PageInfoParts
}
nodes {
...UserItem
...UserParts
}
}
}
@ -120,7 +120,7 @@ query Watchers($owner: String!, $name: String!, $after: String) {
...PageInfoParts
}
nodes {
...UserItem
...UserParts
}
}
}
@ -136,15 +136,15 @@ query Stargazers($owner: String!, $name: String!, $after: String) {
...PageInfoParts
}
nodes {
...UserItem
...UserParts
}
}
}
}
# repos
fragment ReposRepoItem on Repository {
...RepoItem
fragment RepoPartsWithTime on Repository {
...RepoParts
updatedAt
}
query Repos($login: String!, $after: String) {
@ -158,7 +158,7 @@ query Repos($login: String!, $after: String) {
...PageInfoParts
}
nodes {
...ReposRepoItem
...RepoPartsWithTime
}
}
}
@ -174,22 +174,17 @@ query Stars($login: String!, $after: String) {
...PageInfoParts
}
nodes {
...ReposRepoItem
...RepoPartsWithTime
}
}
}
}
# user
fragment UserParts on User {
login
avatarUrl
name
fragment UserPartsFull on User {
...UserParts
bio
company
location
email
createdAt
websiteUrl
viewerCanFollow # TODO: remove in viewer query
viewerIsFollowing
@ -218,27 +213,27 @@ fragment UserParts on User {
) {
totalCount
nodes {
...RepoItem
...RepoParts
}
}
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoItem
...RepoParts
}
}
}
}
query Viewer {
viewer {
...UserParts
...UserPartsFull
}
}
query User($login: String!) {
repositoryOwner(login: $login) {
url
... on User {
...UserParts
...UserPartsFull
}
... on Organization {
login
@ -255,7 +250,7 @@ query User($login: String!) {
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoItem
...RepoParts
}
}
}
@ -263,7 +258,7 @@ query User($login: String!) {
totalCount
nodes {
... on Repository {
...RepoItem
...RepoParts
}
}
}

View File

@ -16,7 +16,7 @@ class GhRepos extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GReposRepoItem, String?>(
return ListStatefulScaffold<GRepoPartsWithTime, String?>(
title: const AppBarTitle('Repositories'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();
@ -47,7 +47,7 @@ class GhStars extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GReposRepoItem, String?>(
return ListStatefulScaffold<GRepoPartsWithTime, String?>(
title: const AppBarTitle('Stars'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();

View File

@ -23,9 +23,9 @@ import 'package:provider/provider.dart';
class _Repos extends StatelessWidget {
final String title;
final Iterable<GRepoItem>? repos;
final Iterable<GRepoParts>? repos;
_Repos(final Iterable<GRepoItem> pinned, final Iterable<GRepoItem>? repos)
_Repos(final Iterable<GRepoParts> pinned, final Iterable<GRepoParts>? repos)
: title =
pinned.isNotEmpty ? 'pinned repositories' : 'popular repositories',
repos = pinned.isNotEmpty ? pinned : repos;
@ -59,7 +59,7 @@ class _Repos extends StatelessWidget {
}
class _User extends StatelessWidget {
final GUserParts? p;
final GUserPartsFull? p;
final bool isViewer;
final List<Widget> rightWidgets;
const _User(this.p, {this.isViewer = false, this.rightWidgets = const []});
@ -177,7 +177,7 @@ class _User extends StatelessWidget {
),
CommonStyle.verticalGap,
_Repos(
p!.pinnedItems.nodes!.whereType<GRepoItem>(),
p!.pinnedItems.nodes!.whereType<GRepoParts>(),
p!.repositories.nodes,
),
CommonStyle.verticalGap,
@ -255,8 +255,8 @@ class _Org extends StatelessWidget {
),
CommonStyle.verticalGap,
_Repos(
p!.pinnedItems.nodes!.whereType<GRepoItem>(),
p!.pinnableItems.nodes!.whereType<GRepoItem>(),
p!.pinnedItems.nodes!.whereType<GRepoParts>(),
p!.pinnableItems.nodes!.whereType<GRepoParts>(),
),
CommonStyle.verticalGap,
],
@ -268,7 +268,7 @@ class GhViewer extends StatelessWidget {
@override
Widget build(BuildContext context) {
final auth = Provider.of<AuthModel>(context);
return RefreshStatefulScaffold<GUserParts?>(
return RefreshStatefulScaffold<GUserPartsFull?>(
fetch: () async {
final req = GViewerReq();
final OperationResponse<GViewerData, GViewerVars?> res =

View File

@ -15,7 +15,7 @@ class GhFollowers extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GUserItem, String?>(
return ListStatefulScaffold<GUserParts, String?>(
title: const AppBarTitle('Followers'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();
@ -45,7 +45,7 @@ class GhFollowing extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GUserItem, String?>(
return ListStatefulScaffold<GUserParts, String?>(
title: const AppBarTitle('Following'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();
@ -75,7 +75,7 @@ class GhMembers extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GUserItem, String?>(
return ListStatefulScaffold<GUserParts, String?>(
title: const AppBarTitle('Members'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();
@ -106,7 +106,7 @@ class GhWachers extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GUserItem, String?>(
return ListStatefulScaffold<GUserParts, String?>(
title: const AppBarTitle('Wachers'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();
@ -138,7 +138,7 @@ class GhStargazers extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListStatefulScaffold<GUserItem, String?>(
return ListStatefulScaffold<GUserParts, String?>(
title: const AppBarTitle('Stargazers'),
fetch: (cursor) async {
final auth = context.read<AuthModel>();

View File

@ -105,7 +105,7 @@ class RepositoryItem extends StatelessWidget {
avatarLink = '/github/$owner',
url = '/github/$owner/$name';
factory RepositoryItem.gql(GRepoItem v, {required note}) {
factory RepositoryItem.gql(GRepoParts v, {required note}) {
return RepositoryItem.gh(
owner: v.owner.login,
avatarUrl: v.owner.avatarUrl,

View File

@ -14,7 +14,7 @@ const userGqlChunk = '''
''';
class GhBioWidget extends StatelessWidget {
final GUserItem p;
final GUserParts p;
const GhBioWidget(this.p);
@override
@ -77,7 +77,7 @@ class UserItem extends StatelessWidget {
required this.bio,
}) : url = '/github/$login';
UserItem.gql(GUserItem p)
UserItem.gql(GUserParts p)
: login = p.login,
name = p.name,
avatarUrl = p.avatarUrl,