refactor: push router
This commit is contained in:
parent
24eea80b66
commit
151ca1fbaa
|
@ -13,6 +13,7 @@ import 'package:git_touch/screens/notification.dart';
|
||||||
import 'package:git_touch/screens/object.dart';
|
import 'package:git_touch/screens/object.dart';
|
||||||
import 'package:git_touch/screens/repository.dart';
|
import 'package:git_touch/screens/repository.dart';
|
||||||
import 'package:git_touch/screens/repositories.dart';
|
import 'package:git_touch/screens/repositories.dart';
|
||||||
|
import 'package:git_touch/screens/settings.dart';
|
||||||
import 'package:git_touch/screens/user.dart';
|
import 'package:git_touch/screens/user.dart';
|
||||||
import 'package:primer/primer.dart';
|
import 'package:primer/primer.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
@ -234,6 +235,11 @@ void main() async {
|
||||||
return LoginScreen();
|
return LoginScreen();
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
themeModel.router.define('/settings', handler: Handler(
|
||||||
|
handlerFunc: (context, params) {
|
||||||
|
return SettingsScreen();
|
||||||
|
},
|
||||||
|
));
|
||||||
themeModel.router.define('/help/credits', handler: Handler(
|
themeModel.router.define('/help/credits', handler: Handler(
|
||||||
handlerFunc: (context, params) {
|
handlerFunc: (context, params) {
|
||||||
return CreditsScreen();
|
return CreditsScreen();
|
||||||
|
|
|
@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/auth.dart';
|
import 'package:git_touch/models/auth.dart';
|
||||||
import 'package:git_touch/models/theme.dart';
|
import 'package:git_touch/models/theme.dart';
|
||||||
import 'package:git_touch/scaffolds/list_stateful.dart';
|
import 'package:git_touch/scaffolds/list_stateful.dart';
|
||||||
import 'package:git_touch/screens/issue_form.dart';
|
|
||||||
import 'package:git_touch/widgets/action_entry.dart';
|
import 'package:git_touch/widgets/action_entry.dart';
|
||||||
import 'package:git_touch/widgets/app_bar_title.dart';
|
import 'package:git_touch/widgets/app_bar_title.dart';
|
||||||
import 'package:git_touch/widgets/issue_item.dart';
|
import 'package:git_touch/widgets/issue_item.dart';
|
||||||
|
@ -52,9 +51,8 @@ class IssuesScreen extends StatelessWidget {
|
||||||
actionBuilder: () => ActionEntry(
|
actionBuilder: () => ActionEntry(
|
||||||
iconData: Octicons.plus,
|
iconData: Octicons.plus,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Provider.of<ThemeModel>(context).pushRoute(
|
Provider.of<ThemeModel>(context)
|
||||||
context, (_) => IssueFormScreen(owner, name),
|
.push(context, '/$owner/$name/issues/new');
|
||||||
fullscreenDialog: true);
|
|
||||||
}),
|
}),
|
||||||
onRefresh: () => _query(context),
|
onRefresh: () => _query(context),
|
||||||
onLoadMore: (cursor) => _query(context, cursor),
|
onLoadMore: (cursor) => _query(context, cursor),
|
||||||
|
|
|
@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
|
||||||
import 'package:git_touch/graphql/github_user.dart';
|
import 'package:git_touch/graphql/github_user.dart';
|
||||||
import 'package:git_touch/models/theme.dart';
|
import 'package:git_touch/models/theme.dart';
|
||||||
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
import 'package:git_touch/scaffolds/refresh_stateful.dart';
|
||||||
import 'package:git_touch/screens/settings.dart';
|
|
||||||
import 'package:git_touch/screens/users.dart';
|
import 'package:git_touch/screens/users.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
import 'package:git_touch/widgets/action_entry.dart';
|
import 'package:git_touch/widgets/action_entry.dart';
|
||||||
|
@ -270,9 +269,7 @@ class UserScreen extends StatelessWidget {
|
||||||
return ActionEntry(
|
return ActionEntry(
|
||||||
iconData: Icons.settings,
|
iconData: Icons.settings,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Provider.of<ThemeModel>(context).pushRoute(
|
Provider.of<ThemeModel>(context).push(context, '/settings');
|
||||||
context, (_) => SettingsScreen(),
|
|
||||||
fullscreenDialog: true);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -37,9 +37,10 @@ class Avatar extends StatelessWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Provider.of<ThemeModel>(context).pushRoute(
|
// TODO:
|
||||||
context, (_) => ImageViewScreen(url),
|
// Provider.of<ThemeModel>(context).pushRoute(
|
||||||
fullscreenDialog: true);
|
// context, (_) => ImageViewScreen(url),
|
||||||
|
// fullscreenDialog: true);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,6 @@ class EntryItem extends StatelessWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
screenBuilder: screenBuilder,
|
|
||||||
url: url,
|
url: url,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -5,7 +5,6 @@ import 'package:provider/provider.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
import 'package:timeago/timeago.dart' as timeago;
|
||||||
import '../utils/utils.dart';
|
import '../utils/utils.dart';
|
||||||
import '../widgets/link.dart';
|
import '../widgets/link.dart';
|
||||||
import '../screens/issue.dart';
|
|
||||||
|
|
||||||
const issueGqlChunk = '''
|
const issueGqlChunk = '''
|
||||||
number
|
number
|
||||||
|
@ -43,14 +42,8 @@ class IssueItem extends StatelessWidget {
|
||||||
final theme = Provider.of<ThemeModel>(context);
|
final theme = Provider.of<ThemeModel>(context);
|
||||||
|
|
||||||
return Link(
|
return Link(
|
||||||
screenBuilder: (context) {
|
url:
|
||||||
return IssueScreen(
|
'/${payload['repository']['owner']['login']}/${payload['repository']['name']}/${isPullRequest ? 'pulls' : 'issues'}/${payload['number']}',
|
||||||
payload['repository']['owner']['login'] as String,
|
|
||||||
payload['repository']['name'] as String,
|
|
||||||
payload['number'] as int,
|
|
||||||
isPullRequest: isPullRequest,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: Container(
|
child: Container(
|
||||||
padding: CommonStyle.padding,
|
padding: CommonStyle.padding,
|
||||||
// color: payload.unread ? Colors.white : Colors.black12,
|
// color: payload.unread ? Colors.white : Colors.black12,
|
||||||
|
|
|
@ -102,15 +102,9 @@ class _NotificationItemState extends State<NotificationItem> {
|
||||||
switch (payload.type) {
|
switch (payload.type) {
|
||||||
case 'Issue':
|
case 'Issue':
|
||||||
case 'PullRequest':
|
case 'PullRequest':
|
||||||
Provider.of<ThemeModel>(context).pushRoute(
|
final resource = payload.type == 'PullRequest' ? 'pulls' : 'issues';
|
||||||
context,
|
Provider.of<ThemeModel>(context).push(context,
|
||||||
(_) => IssueScreen(
|
'/${payload.owner}/${payload.name}/$resource/${payload.number}');
|
||||||
payload.owner,
|
|
||||||
payload.name,
|
|
||||||
payload.number,
|
|
||||||
isPullRequest: payload.type == 'PullRequest',
|
|
||||||
));
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'Release':
|
case 'Release':
|
||||||
launchUrl(
|
launchUrl(
|
||||||
|
|
Loading…
Reference in New Issue