1
0
mirror of https://github.com/git-touch/git-touch synced 2025-03-15 10:40:21 +01:00

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

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

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

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

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

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

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