feat: organization members
This commit is contained in:
parent
45687a48a6
commit
1c5b62430e
|
@ -1,6 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/screens/users.dart';
|
||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||
import 'package:git_touch/widgets/entry_item.dart';
|
||||
import 'package:git_touch/widgets/table_view.dart';
|
||||
import 'package:git_touch/widgets/user_item.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
@ -58,6 +60,7 @@ class OrganizationScreen extends StatelessWidget {
|
|||
location
|
||||
email
|
||||
websiteUrl
|
||||
url
|
||||
pinnedItems(first: $pageSize) {
|
||||
nodes {
|
||||
... on Repository {
|
||||
|
@ -65,7 +68,9 @@ class OrganizationScreen extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
}
|
||||
url
|
||||
membersWithRole {
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
@ -98,6 +103,15 @@ class OrganizationScreen extends StatelessWidget {
|
|||
avatarUrl: payload['avatarUrl'],
|
||||
bio: payload['description'],
|
||||
),
|
||||
borderView,
|
||||
Row(children: <Widget>[
|
||||
EntryItem(
|
||||
count: payload['membersWithRole']['totalCount'],
|
||||
text: 'Members',
|
||||
screenBuilder: (context) =>
|
||||
UsersScreen(type: UsersScreenType.orgs, login: login),
|
||||
),
|
||||
]),
|
||||
borderView1,
|
||||
TableView(
|
||||
hasIcon: true,
|
||||
|
|
|
@ -39,7 +39,7 @@ class UsersScreen extends StatelessWidget {
|
|||
return Tuple3(
|
||||
'repository', 'owner: "$login", name: "$name"', 'watchers');
|
||||
case UsersScreenType.orgs:
|
||||
return Tuple3('', '', ''); // FIXME:
|
||||
return Tuple3('organization', 'login: "$login"', 'membersWithRole');
|
||||
default:
|
||||
throw 'Should not be here';
|
||||
}
|
||||
|
|
|
@ -85,27 +85,6 @@ var createWarning =
|
|||
var warningSpan =
|
||||
TextSpan(text: 'xxx', style: TextStyle(color: Colors.redAccent));
|
||||
|
||||
var repoChunk = '''
|
||||
owner {
|
||||
login
|
||||
avatarUrl
|
||||
}
|
||||
name
|
||||
description
|
||||
isPrivate
|
||||
isFork
|
||||
stargazers {
|
||||
totalCount
|
||||
}
|
||||
forks {
|
||||
totalCount
|
||||
}
|
||||
primaryLanguage {
|
||||
color
|
||||
name
|
||||
}
|
||||
''';
|
||||
|
||||
List<T> join<T>(T seperator, List<T> xs) {
|
||||
List<T> result = [];
|
||||
xs.asMap().forEach((index, x) {
|
||||
|
|
|
@ -6,6 +6,27 @@ import '../utils/utils.dart';
|
|||
import '../screens/repo.dart';
|
||||
import 'link.dart';
|
||||
|
||||
const repoChunk = '''
|
||||
owner {
|
||||
login
|
||||
avatarUrl
|
||||
}
|
||||
name
|
||||
description
|
||||
isPrivate
|
||||
isFork
|
||||
stargazers {
|
||||
totalCount
|
||||
}
|
||||
forks {
|
||||
totalCount
|
||||
}
|
||||
primaryLanguage {
|
||||
color
|
||||
name
|
||||
}
|
||||
''';
|
||||
|
||||
class RepoItem extends StatelessWidget {
|
||||
final Map<String, dynamic> payload;
|
||||
final bool inRepoScreen;
|
||||
|
|
|
@ -4,6 +4,12 @@ import 'package:git_touch/widgets/avatar.dart';
|
|||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:primer/primer.dart';
|
||||
|
||||
const userGqlChunk = '''
|
||||
name
|
||||
avatarUrl
|
||||
bio
|
||||
''';
|
||||
|
||||
class UserItem extends StatelessWidget {
|
||||
final String login;
|
||||
final String name;
|
||||
|
|
Loading…
Reference in New Issue