Skip to content

Commit

Permalink
feat: disable link to self of repo screen
Browse files Browse the repository at this point in the history
  • Loading branch information
pd4d10 committed Mar 10, 2019
1 parent 04edb92 commit 932a107
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 56 deletions.
2 changes: 1 addition & 1 deletion lib/screens/repo.dart
Expand Up @@ -128,7 +128,7 @@ class _RepoScreenState extends State<RepoScreen> {

return Column(
children: <Widget>[
RepoItem(payload),
RepoItem(payload, isLink: false),
Container(
decoration: BoxDecoration(
border: Border(
Expand Down
119 changes: 64 additions & 55 deletions lib/widgets/repo_item.dart
Expand Up @@ -7,8 +7,9 @@ import 'link.dart';
class RepoItem extends StatelessWidget {
final Map<String, dynamic> payload;
final bool showOwner;
final bool isLink;

RepoItem(this.payload, {this.showOwner = true});
RepoItem(this.payload, {this.showOwner = true, this.isLink = true});

IconData _buildIconData() {
if (payload['isPrivate']) {
Expand All @@ -22,63 +23,71 @@ class RepoItem extends StatelessWidget {

@override
Widget build(BuildContext context) {
return Link(
screenBuilder: (_) =>
RepoScreen(payload['owner']['login'], payload['name']),
child: Padding(
padding: EdgeInsets.all(10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
(showOwner ? (payload['owner']['login'] + '/') : '') +
payload['name'],
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 15),
),
Padding(padding: EdgeInsets.only(top: 6)),
Text(payload['description'] ?? 'No description provided yet'),
Padding(padding: EdgeInsets.only(top: 6)),
DefaultTextStyle(
style: TextStyle(color: Colors.black54, fontSize: 13),
child: Row(
children: <Widget>[
Icon(Octicons.star, size: 14, color: Colors.black54),
Text(payload['stargazers']['totalCount'].toString()),
Padding(padding: EdgeInsets.only(left: 16)),
Icon(Octicons.repo_forked,
size: 14, color: Colors.black54),
Text(payload['forks']['totalCount'].toString()),
Padding(padding: EdgeInsets.only(left: 16)),
payload['primaryLanguage'] == null
? Container()
: Row(children: <Widget>[
Container(
width: 10,
height: 10,
decoration: new BoxDecoration(
color: convertColor(
payload['primaryLanguage']['color']),
shape: BoxShape.circle,
),
var widget = Padding(
padding: EdgeInsets.all(10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
(showOwner ? (payload['owner']['login'] + '/') : '') +
payload['name'],
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 15),
),
Padding(padding: EdgeInsets.only(top: 6)),
Text(payload['description'] ?? 'No description provided yet',
style: TextStyle(fontSize: 15)),
Padding(padding: EdgeInsets.only(top: 6)),
DefaultTextStyle(
style: TextStyle(color: Colors.black54, fontSize: 13),
child: Row(
children: <Widget>[
Icon(Octicons.star, size: 14, color: Colors.black54),
Text(payload['stargazers']['totalCount'].toString()),
Padding(padding: EdgeInsets.only(left: 16)),
Icon(Octicons.repo_forked,
size: 14, color: Colors.black54),
Text(payload['forks']['totalCount'].toString()),
Padding(padding: EdgeInsets.only(left: 16)),
payload['primaryLanguage'] == null
? Container()
: Row(children: <Widget>[
Container(
width: 10,
height: 10,
decoration: new BoxDecoration(
color: convertColor(
payload['primaryLanguage']['color']),
shape: BoxShape.circle,
),
Padding(padding: EdgeInsets.only(left: 4)),
Text(payload['primaryLanguage']['name']),
]),
],
),
)
],
),
),
Padding(padding: EdgeInsets.only(left: 4)),
Text(payload['primaryLanguage']['name']),
]),
],
),
)
],
),
Padding(padding: EdgeInsets.only(left: 4)),
Icon(_buildIconData(), size: 20, color: Colors.black54),
],
),
),
Padding(padding: EdgeInsets.only(left: 4)),
Icon(_buildIconData(), size: 20, color: Colors.black54),
],
),
);

if (isLink) {
// TODO: text style
return Link(
screenBuilder: (_) =>
RepoScreen(payload['owner']['login'], payload['name']),
child: widget,
);
} else {
return widget;
}
}
}

0 comments on commit 932a107

Please sign in to comment.