From 8089980e20d5b2ffaaac103d0d6fd25e24a734ec Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Wed, 1 Jan 2020 16:51:10 +0800 Subject: [PATCH] improvement: router prefix --- lib/models/theme.dart | 8 ++++++++ lib/screens/gitlab_blob.dart | 2 +- lib/screens/gitlab_issue.dart | 2 +- lib/screens/gitlab_project.dart | 2 +- lib/screens/gitlab_tree.dart | 2 +- lib/screens/gitlab_user.dart | 2 +- 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/models/theme.dart b/lib/models/theme.dart index 2256c8e..411f9e0 100644 --- a/lib/models/theme.dart +++ b/lib/models/theme.dart @@ -174,6 +174,14 @@ class ThemeModel with ChangeNotifier { } } + pushGitlab(BuildContext context, String url, {bool replace = false}) { + if (url.startsWith('/')) { + push(context, '/gitlab/$url', replace: replace); + } else { + launchUrl(url); + } + } + Future showConfirm(BuildContext context, Widget content) { switch (theme) { case AppThemeType.cupertino: diff --git a/lib/screens/gitlab_blob.dart b/lib/screens/gitlab_blob.dart index 5ecaae0..c4a6700 100644 --- a/lib/screens/gitlab_blob.dart +++ b/lib/screens/gitlab_blob.dart @@ -9,7 +9,7 @@ import 'package:git_touch/widgets/blob_view.dart'; import 'package:provider/provider.dart'; final gitlabBlobRouter = RouterScreen( - '/projects/:id/tree', + '/gitlab/projects/:id/tree', (context, params) => GitlabBlobScreen(params['id'].first.toInt, path: params['path']?.first?.urldecode)); diff --git a/lib/screens/gitlab_issue.dart b/lib/screens/gitlab_issue.dart index 052dc34..46181b3 100644 --- a/lib/screens/gitlab_issue.dart +++ b/lib/screens/gitlab_issue.dart @@ -10,7 +10,7 @@ import 'package:timeago/timeago.dart' as timeago; import 'package:tuple/tuple.dart'; final gitlabIssueRouter = RouterScreen( - '/projects/:id/issues/:iid', + '/gitlab/projects/:id/issues/:iid', (context, params) => GitlabIssueScreen( int.parse(['id'].first), int.parse(params['iid'].first))); diff --git a/lib/screens/gitlab_project.dart b/lib/screens/gitlab_project.dart index ef0833b..d477fca 100644 --- a/lib/screens/gitlab_project.dart +++ b/lib/screens/gitlab_project.dart @@ -13,7 +13,7 @@ import 'package:git_touch/models/theme.dart'; import 'package:git_touch/widgets/repository_item.dart'; import 'package:git_touch/widgets/action_button.dart'; -final gitlabProjectRouter = RouterScreen('/projects/:id', +final gitlabProjectRouter = RouterScreen('/gitlab/projects/:id', (context, params) => GitlabProjectScreen(int.parse(['id'].first))); class GitlabProjectScreen extends StatelessWidget { diff --git a/lib/screens/gitlab_tree.dart b/lib/screens/gitlab_tree.dart index 3fa96ff..960da33 100644 --- a/lib/screens/gitlab_tree.dart +++ b/lib/screens/gitlab_tree.dart @@ -11,7 +11,7 @@ import 'package:primer/primer.dart'; import 'package:seti/seti.dart'; final gitlabTreeRouter = RouterScreen( - '/projects/:id/tree', + '/gitlab/projects/:id/tree', (context, params) => GitlabTreeScreen(params['id'].first.toInt, path: params['path']?.first?.urldecode)); diff --git a/lib/screens/gitlab_user.dart b/lib/screens/gitlab_user.dart index 0b41d37..00322a6 100644 --- a/lib/screens/gitlab_user.dart +++ b/lib/screens/gitlab_user.dart @@ -10,7 +10,7 @@ import 'package:tuple/tuple.dart'; import 'package:git_touch/utils/utils.dart'; final gitlabUserRouter = RouterScreen( - '/user/:id', + '/gitlab/user/:id', (context, parameters) => GitlabUserScreen(int.parse(parameters['id'].first)));