git-touch-android-ios-app/lib/router.dart

638 lines
23 KiB
Dart
Raw Normal View History

2020-02-01 06:26:14 +01:00
import 'package:fluro/fluro.dart';
2020-02-03 07:40:56 +01:00
import 'package:git_touch/screens/bb_commits.dart';
import 'package:git_touch/screens/bb_issue.dart';
import 'package:git_touch/screens/bb_issue_comment.dart';
import 'package:git_touch/screens/bb_issue_form.dart';
2020-02-02 12:50:00 +01:00
import 'package:git_touch/screens/bb_object.dart';
2020-02-02 11:58:05 +01:00
import 'package:git_touch/screens/bb_repo.dart';
import 'package:git_touch/screens/bb_issues.dart';
import 'package:git_touch/screens/bb_pulls.dart';
2020-02-02 11:58:05 +01:00
import 'package:git_touch/screens/bb_user.dart';
2020-02-01 06:26:14 +01:00
import 'package:git_touch/screens/code_theme.dart';
2020-11-01 16:23:03 +01:00
import 'package:git_touch/screens/ge_blob.dart';
import 'package:git_touch/screens/ge_commit.dart';
2020-10-17 14:46:47 +02:00
import 'package:git_touch/screens/ge_commits.dart';
import 'package:git_touch/screens/ge_contributors.dart';
import 'package:git_touch/screens/ge_files.dart';
import 'package:git_touch/screens/ge_issue.dart';
import 'package:git_touch/screens/ge_issue_comment.dart';
import 'package:git_touch/screens/ge_issue_form.dart';
import 'package:git_touch/screens/ge_issues.dart';
import 'package:git_touch/screens/ge_pull.dart';
import 'package:git_touch/screens/ge_pulls.dart';
2020-10-17 13:06:11 +02:00
import 'package:git_touch/screens/ge_repo.dart';
2020-10-17 12:09:36 +02:00
import 'package:git_touch/screens/ge_repos.dart';
2020-11-01 17:32:47 +01:00
import 'package:git_touch/screens/ge_search.dart';
2020-11-01 16:16:52 +01:00
import 'package:git_touch/screens/ge_tree.dart';
2020-10-17 11:35:08 +02:00
import 'package:git_touch/screens/ge_user.dart';
2020-10-17 12:18:26 +02:00
import 'package:git_touch/screens/ge_users.dart';
2020-02-07 07:17:05 +01:00
import 'package:git_touch/screens/gh_commits.dart';
import 'package:git_touch/screens/gh_contributors.dart';
2020-10-04 15:04:23 +02:00
import 'package:git_touch/screens/gh_events.dart';
2020-04-30 18:04:24 +02:00
import 'package:git_touch/screens/gh_files.dart';
import 'package:git_touch/screens/gh_gists_files.dart';
import 'package:git_touch/screens/gh_org_repos.dart';
2020-02-29 10:06:47 +01:00
import 'package:git_touch/screens/gl_commit.dart';
import 'package:git_touch/screens/gl_starrers.dart';
2020-02-07 15:20:06 +01:00
import 'package:git_touch/screens/gt_commits.dart';
import 'package:git_touch/screens/gt_issue.dart';
import 'package:git_touch/screens/gt_issue_comment.dart';
import 'package:git_touch/screens/gt_issue_form.dart';
2020-02-07 15:20:06 +01:00
import 'package:git_touch/screens/gt_issues.dart';
import 'package:git_touch/screens/gt_object.dart';
2020-10-06 07:25:43 +02:00
import 'package:git_touch/screens/gt_orgs.dart';
2020-02-07 15:20:06 +01:00
import 'package:git_touch/screens/gt_repo.dart';
2020-10-05 11:23:43 +02:00
import 'package:git_touch/screens/gt_repos.dart';
2020-10-06 07:53:07 +02:00
import 'package:git_touch/screens/gt_status.dart';
2020-02-07 15:20:06 +01:00
import 'package:git_touch/screens/gt_user.dart';
2020-02-07 15:26:37 +01:00
import 'package:git_touch/screens/gl_blob.dart';
import 'package:git_touch/screens/gl_commits.dart';
import 'package:git_touch/screens/gl_group.dart';
import 'package:git_touch/screens/gl_issue.dart';
import 'package:git_touch/screens/gl_issues.dart';
import 'package:git_touch/screens/gl_members.dart';
import 'package:git_touch/screens/gl_merge_requests.dart';
import 'package:git_touch/screens/gl_project.dart';
import 'package:git_touch/screens/gl_tree.dart';
import 'package:git_touch/screens/gl_user.dart';
2020-02-07 07:17:05 +01:00
import 'package:git_touch/screens/gh_issue.dart';
import 'package:git_touch/screens/gh_issue_form.dart';
import 'package:git_touch/screens/gh_issues.dart';
2020-10-05 12:01:49 +02:00
import 'package:git_touch/screens/gt_users.dart';
2020-02-01 06:26:14 +01:00
import 'package:git_touch/screens/login.dart';
2020-02-07 07:17:05 +01:00
import 'package:git_touch/screens/gh_object.dart';
import 'package:git_touch/screens/gh_pulls.dart';
import 'package:git_touch/screens/gh_repos.dart';
import 'package:git_touch/screens/gh_repo.dart';
2020-02-01 06:26:14 +01:00
import 'package:git_touch/screens/settings.dart';
2020-02-07 07:17:05 +01:00
import 'package:git_touch/screens/gh_user.dart';
import 'package:git_touch/screens/gh_users.dart';
2020-10-04 15:42:54 +02:00
import 'package:git_touch/screens/gh_orgs.dart';
import 'package:git_touch/screens/gh_gists.dart';
import 'package:git_touch/screens/gh_gist_object.dart';
2020-05-12 15:03:13 +02:00
import 'package:git_touch/screens/gh_compare.dart';
2020-02-01 06:26:14 +01:00
class RouterScreen {
String path;
HandlerFunc handler;
RouterScreen(this.path, this.handler);
}
class CommonRouter {
static const prefix = '';
static final routes = [
CommonRouter.codeTheme,
CommonRouter.login,
CommonRouter.settings
];
static final codeTheme =
RouterScreen('/choose-code-theme', (context, parameters) {
2020-02-01 06:26:14 +01:00
return CodeThemeScreen();
});
static final login =
RouterScreen('/login', (context, parameters) => LoginScreen());
2020-02-01 06:26:14 +01:00
static final settings =
RouterScreen('/settings', (context, parameters) => SettingsScreen());
}
class GithubRouter {
static const prefix = '/github';
2020-02-01 06:26:14 +01:00
static final routes = [
GithubRouter.user,
GithubRouter.repo,
GithubRouter.issueAdd,
GithubRouter.issues,
GithubRouter.pulls,
GithubRouter.issue,
GithubRouter.pull,
GithubRouter.commits,
GithubRouter.object,
GithubRouter.stargazers,
GithubRouter.watchers,
GithubRouter.contributors,
2020-04-30 18:04:24 +02:00
GithubRouter.files,
GithubRouter.gistFiles,
GithubRouter.gistObject,
2020-05-12 15:03:13 +02:00
GithubRouter.compare,
2020-02-01 06:26:14 +01:00
];
static final user = RouterScreen('/:login', (context, parameters) {
final login = parameters['login'].first;
final tab = parameters['tab']?.first;
2020-02-01 06:26:14 +01:00
switch (tab) {
case 'followers':
2020-02-07 07:17:05 +01:00
return GhUsersScreen(login, UsersScreenType.follower);
2020-02-01 06:26:14 +01:00
case 'following':
2020-02-07 07:17:05 +01:00
return GhUsersScreen(login, UsersScreenType.following);
2020-02-01 06:26:14 +01:00
case 'people':
2020-02-07 07:17:05 +01:00
return GhUsersScreen(login, UsersScreenType.member);
2020-02-01 06:26:14 +01:00
case 'stars':
2020-02-07 07:17:05 +01:00
return GhReposScreen.stars(login);
2020-02-01 06:26:14 +01:00
case 'repositories':
2020-02-07 07:17:05 +01:00
return GhReposScreen(login);
case 'orgrepo':
return GhOrgReposScreen(login);
case 'organizations':
return GhUserOrganizationScreen(login);
2020-04-30 18:04:24 +02:00
case 'gists':
return GhGistsScreen(login);
2020-10-04 15:04:23 +02:00
case 'events':
return GhEventsScreen(login);
2020-02-01 06:26:14 +01:00
default:
2020-02-07 07:17:05 +01:00
return GhUserScreen(login);
2020-02-01 06:26:14 +01:00
}
});
static final repo = RouterScreen('/:owner/:name', (context, parameters) {
if (parameters['ref'] == null) {
return GhRepoScreen(parameters['owner'].first, parameters['name'].first);
2020-02-01 06:26:14 +01:00
} else {
return GhRepoScreen(parameters['owner'].first, parameters['name'].first,
branch: parameters['ref'].first);
2020-02-01 06:26:14 +01:00
}
});
static final gistObject =
RouterScreen('/:login/gists/:id/:file', (context, parameters) {
return GistObjectScreen(
parameters['login'].first,
parameters['id'].first,
parameters['file'].first,
raw: parameters['raw']?.first,
content: parameters['content'].first,
);
});
static final gistFiles =
RouterScreen('/:login/gists/:id', (context, parameters) {
return GhGistsFilesScreen(
parameters['login'].first, parameters['id'].first);
});
static final issueAdd =
RouterScreen('/:owner/:name/issues/new', (context, parameters) {
return GhIssueFormScreen(
parameters['owner'].first, parameters['name'].first);
2020-02-01 06:26:14 +01:00
});
static final issues = RouterScreen(
'/:owner/:name/issues',
(context, parameters) =>
GhIssuesScreen(parameters['owner'].first, parameters['name'].first));
static final pulls = RouterScreen(
'/:owner/:name/pulls',
(context, parameters) =>
GhPullsScreen(parameters['owner'].first, parameters['name'].first));
2020-02-01 06:26:14 +01:00
static final issue = RouterScreen(
'/:owner/:name/issues/:number',
(context, parameters) => GhIssueScreen(parameters['owner'].first,
parameters['name'].first, int.parse(parameters['number'].first)));
2020-02-01 06:26:14 +01:00
static final pull = RouterScreen(
'/:owner/:name/pull/:number',
(context, parameters) => GhIssueScreen(parameters['owner'].first,
parameters['name'].first, int.parse(parameters['number'].first),
2020-02-01 06:26:14 +01:00
isPullRequest: true));
2020-04-30 18:04:24 +02:00
static final files = RouterScreen(
'/:owner/:name/pull/:number/files',
(context, parameters) => GhFilesScreen(
parameters['owner'].first,
parameters['name'].first,
int.parse(parameters['number'].first),
2020-04-30 18:04:24 +02:00
));
2020-05-12 15:03:13 +02:00
static final compare = RouterScreen(
'/:owner/:name/compare/:before/:head',
(context, parameters) => GhComparisonScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['before'].first,
parameters['head'].first));
static final commits = RouterScreen(
'/:owner/:name/commits',
(context, parameters) =>
GhCommitsScreen(parameters['owner'].first, parameters['name'].first));
static final object =
RouterScreen('/:owner/:name/blob/:ref', (context, parameters) {
2020-02-07 07:17:05 +01:00
return GhObjectScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['ref'].first,
path: parameters['path']?.first,
raw: parameters['raw']?.first,
2020-02-01 06:26:14 +01:00
);
});
static final stargazers =
RouterScreen('/:owner/:name/stargazers', (context, parameters) {
return GhUsersScreen(parameters['owner'].first, UsersScreenType.star,
repoName: parameters['name'].first);
2020-02-01 06:26:14 +01:00
});
static final watchers =
RouterScreen('/:owner/:name/watchers', (context, parameters) {
return GhUsersScreen(parameters['owner'].first, UsersScreenType.watch,
repoName: parameters['name'].first);
2020-02-01 06:26:14 +01:00
});
static final contributors =
RouterScreen('/:owner/:name/contributors', (context, parameters) {
return GhContributorsScreen(
parameters['owner'].first, parameters['name'].first);
});
2020-02-01 06:26:14 +01:00
}
class GitlabRouter {
static const prefix = '/gitlab';
static final routes = [
GitlabRouter.user,
GitlabRouter.group,
GitlabRouter.blob,
GitlabRouter.tree,
GitlabRouter.project,
GitlabRouter.starrers,
2020-02-01 06:26:14 +01:00
GitlabRouter.issues,
GitlabRouter.mergeRequests,
GitlabRouter.commits,
2020-02-29 10:06:47 +01:00
GitlabRouter.commit,
2020-02-01 06:26:14 +01:00
GitlabRouter.projectMembers,
GitlabRouter.groupMembers,
GitlabRouter.issue,
];
static final user = RouterScreen('/user/:id',
(context, parameters) => GlUserScreen(int.parse(parameters['id'].first)));
2020-02-07 15:26:37 +01:00
static final group = RouterScreen(
'/group/:id',
(context, parameters) =>
GlGroupScreen(int.parse(parameters['id'].first)));
2020-02-01 06:26:14 +01:00
static final blob = RouterScreen(
'/projects/:id/blob/:ref',
(context, parameters) => GlBlobScreen(
int.parse(parameters['id'].first), parameters['ref'].first,
path: parameters['path']?.first));
2020-02-01 06:26:14 +01:00
static final tree = RouterScreen(
'/projects/:id/tree/:ref',
(context, parameters) => GlTreeScreen(
int.parse(parameters['id'].first), parameters['ref'].first,
path: parameters['path']?.first));
static final project = RouterScreen(
'/projects/:id',
(context, parameters) =>
GlProjectScreen(int.parse(parameters['id'].first)));
static final starrers = RouterScreen(
'/projects/:id/starrers',
(context, parameters) =>
GlStarrersScreen(int.parse(parameters['id'].first)));
2020-02-01 06:26:14 +01:00
static final issues = RouterScreen(
'/projects/:id/issues',
(context, parameters) => GlIssuesScreen(
parameters['id'].first,
prefix: parameters['prefix'].first,
2020-02-01 06:26:14 +01:00
));
static final mergeRequests = RouterScreen(
'/projects/:id/merge_requests',
(context, parameters) => GlMergeRequestsScreen(
parameters['id'].first,
prefix: parameters['prefix'].first,
2020-02-01 06:26:14 +01:00
));
2020-02-01 06:37:44 +01:00
static final commits = RouterScreen(
'/projects/:id/commits',
(context, parameters) => GlCommitsScreen(parameters['id'].first,
prefix: parameters['prefix'].first));
2020-02-29 10:06:47 +01:00
static final commit = RouterScreen(
'/projects/:id/commit/:sha',
(context, parameters) =>
GlCommitScreen(parameters['id'].first, sha: parameters['sha'].first));
2020-02-01 06:26:14 +01:00
static final projectMembers = RouterScreen(
'/projects/:id/members',
(context, parameters) =>
2020-02-07 15:26:37 +01:00
GlMembersScreen(int.parse(parameters['id'].first), 'projects'));
2020-02-01 06:26:14 +01:00
static final groupMembers = RouterScreen(
'/groups/:id/members',
(context, parameters) =>
2020-02-07 15:26:37 +01:00
GlMembersScreen(int.parse(parameters['id'].first), 'groups'));
2020-02-01 06:26:14 +01:00
static final issue = RouterScreen(
'/gitlab/projects/:id/issues/:iid',
(context, parameters) {
2020-02-07 15:26:37 +01:00
return GlIssueScreen(
int.parse(parameters['id'].first),
int.parse(parameters['iid'].first),
2020-02-01 06:26:14 +01:00
);
},
);
}
class GiteaRouter {
static const prefix = '/gitea';
static final routes = [
2020-10-06 07:53:07 +02:00
GiteaRouter.status,
2020-02-01 06:26:14 +01:00
GiteaRouter.user,
GiteaRouter.repo,
2020-02-01 08:21:42 +01:00
GiteaRouter.object,
GiteaRouter.stargazers,
GiteaRouter.watchers,
GiteaRouter.forks,
2020-02-01 08:21:42 +01:00
GiteaRouter.commits,
2020-02-01 08:42:10 +01:00
GiteaRouter.issues,
GiteaRouter.pulls,
GiteaRouter.issueAdd,
GiteaRouter.issue,
GiteaRouter.issueComment,
2020-02-01 06:26:14 +01:00
];
2020-10-06 07:53:07 +02:00
static final status =
RouterScreen('/status', (context, parameters) => GtStatusScreen());
static final user = RouterScreen('/:login', (context, parameters) {
final login = parameters['login'].first;
final tab = parameters['tab']?.first;
2020-10-05 11:23:43 +02:00
switch (tab) {
2020-10-05 12:01:49 +02:00
case 'followers':
return GtUsersScreen.followers(login);
case 'following':
return GtUsersScreen.following(login);
2020-10-05 12:08:14 +02:00
case 'people':
return GtUsersScreen.member(login);
2020-10-05 11:23:43 +02:00
case 'stars':
return GtReposScreen.star(login);
case 'repositories':
return GtReposScreen(login);
2020-10-05 11:31:17 +02:00
case 'orgrepo':
return GtReposScreen.org(login);
2020-10-06 07:25:43 +02:00
case 'organizations':
return GtOrgsScreen.ofUser(login);
2020-10-05 11:23:43 +02:00
default:
return GtUserScreen(login);
}
});
2020-02-01 06:26:14 +01:00
static final repo = RouterScreen(
'/:owner/:name',
(context, parameters) =>
GtRepoScreen(parameters['owner'].first, parameters['name'].first),
2020-02-01 06:26:14 +01:00
);
static final object = RouterScreen(
2020-02-01 08:21:42 +01:00
'/:owner/:name/blob',
(context, parameters) => GtObjectScreen(
parameters['owner'].first,
parameters['name'].first,
path: parameters['path']?.first,
2020-02-01 06:26:14 +01:00
),
);
static final stargazers =
RouterScreen('/:owner/:name/stargazers', (context, parameters) {
return GtUsersScreen.stargazers(
parameters['owner'].first, parameters['name'].first);
});
static final watchers =
RouterScreen('/:owner/:name/watchers', (context, parameters) {
return GtUsersScreen.watchers(
parameters['owner'].first, parameters['name'].first);
});
static final forks =
RouterScreen('/:owner/:name/forks', (context, parameters) {
return GtReposScreen.forks(
parameters['owner'].first, parameters['name'].first);
});
static final commits = RouterScreen(
'/:owner/:name/commits',
(context, parameters) =>
GtCommitsScreen(parameters['owner'].first, parameters['name'].first));
static final issues = RouterScreen(
'/:owner/:name/issues',
(context, parameters) =>
GtIssuesScreen(parameters['owner'].first, parameters['name'].first));
static final pulls = RouterScreen(
'/:owner/:name/pulls',
(context, parameters) => GtIssuesScreen(
parameters['owner'].first, parameters['name'].first,
isPr: true));
static final issueAdd = RouterScreen(
'/:owner/:name/issues/new',
(context, parameters) => GtIssueFormScreen(
parameters['owner'].first, parameters['name'].first));
static final issue = RouterScreen(
'/:owner/:name/issues/:number',
(context, parameters) => GtIssueScreen(parameters['owner'].first,
parameters['name'].first, parameters['number'].first));
static final issueComment = RouterScreen(
'/:owner/:name/issues/:number/comment',
(context, parameters) => GtIssueCommentScreen(parameters['owner'].first,
parameters['name'].first, parameters['number'].first,
body: parameters['body'] != null ? parameters['body'].first : '',
id: parameters['id'] != null ? parameters['id'].first : ''));
2020-02-01 06:26:14 +01:00
}
2020-02-02 11:58:05 +01:00
class BitbucketRouter {
static const prefix = '/bitbucket';
static final routes = [
BitbucketRouter.user,
BitbucketRouter.repo,
2020-02-02 12:50:00 +01:00
BitbucketRouter.object,
2020-02-03 07:40:56 +01:00
BitbucketRouter.commits,
BitbucketRouter.issueAdd,
BitbucketRouter.issueComment,
BitbucketRouter.issue,
BitbucketRouter.issues,
BitbucketRouter.pulls,
2020-02-02 11:58:05 +01:00
];
static final user = RouterScreen(
2020-02-02 15:43:01 +01:00
'/:login',
(context, parameters) => BbUserScreen(parameters['login'].first,
isTeam: parameters['team'].first == '1'));
static final repo = RouterScreen('/:owner/:name', (context, parameters) {
if (parameters['branch'] == null) {
return BbRepoScreen(parameters['owner'].first, parameters['name'].first);
} else {
return BbRepoScreen(parameters['owner'].first, parameters['name'].first,
branch: parameters['branch'].first);
}
});
2020-02-02 12:50:00 +01:00
static final object = RouterScreen(
'/:owner/:name/src/:ref',
(context, parameters) => BbObjectScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['ref'].first,
path: parameters['path']?.first,
2020-02-02 12:50:00 +01:00
),
);
static final issues = RouterScreen(
'/:owner/:name/issues',
(context, parameters) =>
BbIssuesScreen(parameters['owner'].first, parameters['name'].first));
2020-02-03 07:40:56 +01:00
static final commits = RouterScreen(
'/:owner/:name/commits/:ref',
(context, parameters) => BbCommitsScreen(parameters['owner'].first,
parameters['name'].first, parameters['ref'].first));
static final pulls = RouterScreen(
'/:owner/:name/pulls',
(context, parameters) =>
BbPullsScreen(parameters['owner'].first, parameters['name'].first));
static final issueAdd = RouterScreen(
'/:owner/:name/issues/new',
(context, parameters) => BbIssueFormScreen(
parameters['owner'].first, parameters['name'].first));
static final issue = RouterScreen(
'/:owner/:name/issues/:number',
(context, parameters) => BbIssueScreen(parameters['owner'].first,
parameters['name'].first, parameters['number'].first));
static final issueComment = RouterScreen(
'/:owner/:name/issues/:number/comment',
(context, parameters) => BbIssueCommentScreen(parameters['owner'].first,
parameters['name'].first, parameters['number'].first));
2020-02-02 11:58:05 +01:00
}
2020-10-17 11:35:08 +02:00
class GiteeRouter {
static const prefix = '/gitee';
static final routes = [
2020-11-01 17:32:47 +01:00
GiteeRouter.search,
2020-10-17 11:35:08 +02:00
GiteeRouter.user,
2020-10-17 13:06:11 +02:00
GiteeRouter.repo,
GiteeRouter.stargazers,
GiteeRouter.watchers,
GiteeRouter.forks,
2020-10-17 14:46:47 +02:00
GiteeRouter.commits,
2020-11-01 16:16:52 +01:00
GiteeRouter.tree,
2020-11-01 16:23:03 +01:00
GiteeRouter.blob,
GiteeRouter.issues,
GiteeRouter.pulls,
GiteeRouter.issueAdd, // issueAdd should be above issue
GiteeRouter.issue, // Due to similarity of uris
GiteeRouter.issueComment,
GiteeRouter.pull,
GiteeRouter.pullComment,
GiteeRouter.files,
GiteeRouter.commit,
GiteeRouter.contributors,
2020-10-17 11:35:08 +02:00
];
2020-11-01 17:32:47 +01:00
static final search = RouterScreen('/search', (context, parameters) {
return GeSearchScreen();
});
static final user = RouterScreen('/:login', (context, parameters) {
final login = parameters['login'].first;
final tab = parameters['tab']?.first;
2020-10-17 12:09:36 +02:00
switch (tab) {
2020-10-17 12:18:26 +02:00
case 'followers':
return GeUsersScreen.followers(login);
case 'following':
return GeUsersScreen.following(login);
// case 'people':
2020-10-17 12:09:36 +02:00
case 'stars':
return GeReposScreen.star(login);
case 'repositories':
return GeReposScreen(login);
default:
return GeUserScreen(login);
}
});
2020-10-17 13:06:11 +02:00
static final repo = RouterScreen(
'/:owner/:name',
(context, parameters) {
if (parameters['branch'] == null) {
return GeRepoScreen(
parameters['owner'].first, parameters['name'].first);
} else {
return GeRepoScreen(parameters['owner'].first, parameters['name'].first,
branch: parameters['branch'].first);
}
},
2020-10-17 13:06:11 +02:00
);
static final stargazers =
RouterScreen('/:owner/:name/stargazers', (context, parameters) {
return GeUsersScreen.stargazers(
parameters['owner'].first, parameters['name'].first);
2020-10-17 13:06:11 +02:00
});
static final watchers =
RouterScreen('/:owner/:name/watchers', (context, parameters) {
return GeUsersScreen.watchers(
parameters['owner'].first, parameters['name'].first);
2020-10-17 13:06:11 +02:00
});
static final forks =
RouterScreen('/:owner/:name/forks', (context, parameters) {
return GeReposScreen.forks(
parameters['owner'].first, parameters['name'].first);
2020-10-17 13:06:11 +02:00
});
2020-10-17 14:46:47 +02:00
static final commits = RouterScreen(
'/:owner/:name/commits',
(context, parameters) => GeCommitsScreen(
parameters['owner'].first, parameters['name'].first,
branch:
parameters['branch'] != null ? parameters['branch'].first : null),
2020-10-17 14:46:47 +02:00
);
2020-11-01 16:16:52 +01:00
static final tree = RouterScreen(
'/:owner/:name/tree/:sha',
(context, parameters) {
return GeTreeScreen(parameters['owner'].first, parameters['name'].first,
parameters['sha'].first);
},
);
2020-11-01 16:23:03 +01:00
static final blob = RouterScreen(
'/:owner/:name/blob/:sha',
(context, parameters) {
return GeBlobScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['sha'].first,
parameters['path'].first,
);
},
);
static final issues = RouterScreen(
'/:owner/:name/issues',
(context, parameters) {
return GeIssuesScreen(parameters['owner'].first, parameters['name'].first,
isPr: false);
},
);
static final issue =
RouterScreen('/:owner/:name/issues/:number', (context, parameters) {
return GeIssueScreen(parameters['owner'].first, parameters['name'].first,
parameters['number'].first,
isPr: false);
});
static final pulls = RouterScreen(
'/:owner/:name/pulls',
(context, parameters) {
return GePullsScreen(parameters['owner'].first, parameters['name'].first,
isPr: true);
},
);
static final issueAdd =
RouterScreen('/:owner/:name/issues/new', (context, parameters) {
return GeIssueFormScreen(
parameters['owner'].first, parameters['name'].first);
});
static final issueComment = RouterScreen(
'/:owner/:name/issues/:number/comment', (context, parameters) {
return GeIssueCommentScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['number'].first,
isPr: false,
body: parameters['body'] != null ? parameters['body'].first : '',
id: parameters['id'] != null ? parameters['id'].first : '',
);
});
static final pull = RouterScreen(
'/:owner/:name/pulls/:number',
(context, parameters) {
return GePullScreen(parameters['owner'].first, parameters['name'].first,
parameters['number'].first,
isPr: true);
},
);
static final pullComment = RouterScreen('/:owner/:name/pulls/:number/comment',
(context, parameters) {
return GeIssueCommentScreen(
parameters['owner'].first,
parameters['name'].first,
parameters['number'].first,
isPr: true,
body: parameters['body'] != null ? parameters['body'].first : '',
id: parameters['id'] != null ? parameters['id'].first : '',
);
});
static final files =
RouterScreen('/:owner/:name/pulls/:number/files', (context, parameters) {
return GeFilesScreen(parameters['owner'].first, parameters['name'].first,
parameters['number'].first);
});
static final commit = RouterScreen(
'/:owner/:name/commits/:sha',
(context, parameters) => GeCommitScreen(parameters['owner'].first,
parameters['name'].first, parameters['sha'].first),
);
static final contributors = RouterScreen(
'/:owner/:name/contributors',
(context, parameters) => GeContributorsScreen(
parameters['owner'].first, parameters['name'].first),
);
2020-10-17 11:35:08 +02:00
}