Skip to content

Commit

Permalink
feat: show pinned items
Browse files Browse the repository at this point in the history
  • Loading branch information
pd4d10 committed Sep 14, 2019
1 parent 9fe6639 commit 8cd1d9f
Showing 1 changed file with 25 additions and 21 deletions.
46 changes: 25 additions & 21 deletions lib/screens/user.dart
Expand Up @@ -10,7 +10,6 @@ import 'package:github_contributions/github_contributions.dart';
import 'package:git_touch/models/settings.dart';
import 'package:provider/provider.dart';
import '../scaffolds/refresh.dart';
import '../widgets/avatar.dart';
import '../widgets/entry_item.dart';
import '../widgets/list_group.dart';
import '../widgets/repo_item.dart';
Expand Down Expand Up @@ -47,13 +46,13 @@ class UserScreen extends StatelessWidget {
following {
totalCount
}
repositories(first: $pageSize, ownerAffiliations: OWNER, orderBy: {field: STARGAZERS, direction: DESC}) {
repositories(first: 6, ownerAffiliations: OWNER, orderBy: {field: STARGAZERS, direction: DESC}) {
totalCount
nodes {
$repoChunk
}
}
pinnedItems(first: $pageSize) {
pinnedItems(first: 6) {
nodes {
... on Repository {
$repoChunk
Expand All @@ -69,27 +68,32 @@ class UserScreen extends StatelessWidget {
return data['user'];
}

Widget _buildRepos(payload) {
String title;
Iterable<Widget> _buildRepos(payload) {
List items;
if (payload['pinnedItems']['nodes'].length == 0) {
title = 'Popular repositories';
items = payload['repositories']['nodes'];

if ((payload['pinnedItems']['nodes'] as List).isNotEmpty) {
items = payload['pinnedItems']['nodes'] as List;
} else if ((payload['repositories']['nodes'] as List).isNotEmpty) {
items = payload['repositories']['nodes'] as List;
} else {
title = 'Pinned repositories';
items = payload['pinnedItems']['nodes'];
items = [];
}

return ListGroup(
title: Text(
title,
style: TextStyle(fontSize: 16),
),
items: items,
itemBuilder: (item, _) {
return RepoItem(item);
},
);
items = items
.where((x) => x != null)
.toList(); // TODO: Pinned items may include somethings other than repo
if (items.isEmpty) return [];

return [
BorderView(height: 10),
// Text('Pinned repositories'),
...join(
BorderView(),
items.map((item) {
return RepoItem(item);
}).toList(),
)
];
}

TableViewItem _buildTableViewItem({
Expand Down Expand Up @@ -287,7 +291,7 @@ class UserScreen extends StatelessWidget {
},
),
]),
// _buildRepos(payload),
..._buildRepos(payload),
],
);
},
Expand Down

0 comments on commit 8cd1d9f

Please sign in to comment.