fix: event item tap screen

This commit is contained in:
Rongjian Zhang 2019-02-10 19:32:30 +08:00
parent ce11da379a
commit d476018092
3 changed files with 70 additions and 47 deletions

View File

@ -126,16 +126,16 @@ TextSpan createLinkSpan(BuildContext context, String text, Function handle) {
fontWeight: FontWeight.w600,
// decoration: TextDecoration.underline,
),
recognizer: TapGestureRecognizer()
..onTap = () {
Navigator.of(context).push(
CupertinoPageRoute(
builder: (context) {
return handle();
},
),
);
},
// recognizer: TapGestureRecognizer()
// ..onTap = () {
// Navigator.of(context).push(
// CupertinoPageRoute(
// builder: (context) {
// return handle();
// },
// ),
// );
// },
);
}

View File

@ -23,6 +23,7 @@ class Avatar extends StatelessWidget {
backgroundImage: NetworkImage(url),
radius: size,
),
material: false,
);
}
}

View File

@ -3,7 +3,9 @@ import 'package:flutter/cupertino.dart';
import '../screens/issue.dart';
import '../screens/pull_request.dart';
import '../screens/user.dart';
import '../screens/repo.dart';
import 'avatar.dart';
import 'link.dart';
import '../utils/utils.dart';
class EventPayload {
@ -56,6 +58,7 @@ class EventItem extends StatelessWidget {
@required List<TextSpan> spans,
String detail,
IconData iconData = Octicons.octoface,
WidgetBuilder screenBuilder,
}) {
var _spans = [
createLinkSpan(
@ -63,7 +66,9 @@ class EventItem extends StatelessWidget {
];
_spans.addAll(spans);
return Container(
return Link(
screenBuilder: screenBuilder,
child: Container(
padding: EdgeInsets.all(8),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -103,6 +108,7 @@ class EventItem extends StatelessWidget {
)
],
),
),
);
}
@ -175,6 +181,10 @@ class EventItem extends StatelessWidget {
],
detail: event.payload['comment']['body'],
iconData: Octicons.comment_discussion,
screenBuilder: (_) => IssueScreen.fromFullName(
number: event.payload['issue']['number'],
fullName: event.repoFullName,
),
);
case 'IssuesEvent':
return _buildItem(
@ -187,6 +197,10 @@ class EventItem extends StatelessWidget {
],
iconData: Octicons.issue_opened,
detail: event.payload['issue']['title'],
screenBuilder: (_) => IssueScreen.fromFullName(
number: event.payload['issue']['number'],
fullName: event.repoFullName,
),
);
case 'LabelEvent':
case 'MarketplacePurchaseEvent':
@ -213,6 +227,10 @@ class EventItem extends StatelessWidget {
],
iconData: Octicons.git_pull_request,
detail: event.payload['pull_request']['title'],
screenBuilder: (_) => PullRequestScreen.fromFullName(
number: event.payload['pull_request']['number'],
fullName: event.repoFullName,
),
);
case 'PullRequestReviewEvent':
// TODO:
@ -227,6 +245,10 @@ class EventItem extends StatelessWidget {
_buildRepo(context),
],
detail: event.payload['comment']['body'],
screenBuilder: (_) => PullRequestScreen.fromFullName(
number: event.payload['pull_request']['number'],
fullName: event.repoFullName,
),
);
case 'PushEvent':
return _buildItem(