Skip to content
代码片段 群组 项目
提交 c05d7d55 编辑于 作者: Neil Wang's avatar Neil Wang 提交者: Neil Wang
浏览文件

refactor: #845 remove destinationHost in MergeRequestPage

上级 526305c8
分支
未找到相关标签
无相关合并请求
......@@ -5,6 +5,7 @@ import 'package:jihu_gitlab_app/core/domain/avatar_url.dart';
import 'package:jihu_gitlab_app/core/global_keys.dart';
import 'package:jihu_gitlab_app/core/load_state.dart';
import 'package:jihu_gitlab_app/core/local_storage.dart';
import 'package:jihu_gitlab_app/core/project_provider.dart';
import 'package:jihu_gitlab_app/core/settings/settings.dart';
import 'package:jihu_gitlab_app/core/string_extension.dart';
import 'package:jihu_gitlab_app/core/system_version_detector.dart';
......@@ -167,7 +168,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
projectId: _model.mr!.projectId,
data: _model.mr!.description,
context: context,
destinationHost: widget.arguments['destinationHost'],
destinationHost: ProjectProvider().specifiedHost,
),
),
_buildDivider(),
......@@ -188,7 +189,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
: AvatarAndName(
key: const Key('MergeRequestAuthorAvatar'),
username: _model.mr!.author.name,
avatarUrl: _model.mr!.author.avatarUrl.isNotEmpty ? AvatarUrl(_model.mr!.author.avatarUrl).realUrl(widget.arguments['destinationHost']) : '',
avatarUrl: _model.mr!.author.avatarUrl.isNotEmpty ? AvatarUrl(_model.mr!.author.avatarUrl).realUrl(ProjectProvider().specifiedHost) : '',
gap: 4,
nameStyle: const TextStyle(fontSize: 12, fontWeight: FontWeight.w400, color: Color(0xFF87878C)),
avatarSize: 16),
......@@ -266,7 +267,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
approvalsLeft: _model.approvalsLeft,
onApproved: () => _model.approve().then((value) => _model.onRefresh(() => setState(() {}))),
onRevokedApproval: () => _model.revokeApproval().then((value) => _model.onRefresh(() => setState(() {}))),
destinationHost: widget.arguments['destinationHost'],
destinationHost: ProjectProvider().specifiedHost,
),
_buildDivider()
];
......@@ -278,7 +279,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
onMarkedAsReady: () => _model.onRefresh(() => setState(() {})),
rebaseStatusLooper: () => _model.isRebaseInProgress(),
onRebaseFinished: () => _model.onRefresh(() => setState(() {})),
destinationHost: widget.arguments['destinationHost'],
destinationHost: ProjectProvider().specifiedHost,
);
}
......@@ -286,7 +287,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
return MergeReadyView(
mergeRequest: _model.mr!,
onMergeFinished: () => _model.onRefresh(() => setState(() {})),
destinationHost: widget.arguments['destinationHost'],
destinationHost: ProjectProvider().specifiedHost,
);
}
......@@ -301,7 +302,7 @@ class _MergeRequestPageState extends State<MergeRequestPage> with TickerProvider
Text(JiHuLocalizations.dictionary().mergedBy, style: const TextStyle(color: Color(0xFF1A1B36), fontSize: 15, fontWeight: FontWeight.w600)),
const SizedBox(width: 20),
if (_model.mr!.mergeUser != null)
AvatarAndName(username: _model.mr!.mergeUser!.name, avatarUrl: AvatarUrl(_model.mr!.mergeUser!.avatarUrl).realUrl(widget.arguments['destinationHost']), avatarSize: 24)
AvatarAndName(username: _model.mr!.mergeUser!.name, avatarUrl: AvatarUrl(_model.mr!.mergeUser!.avatarUrl).realUrl(ProjectProvider().specifiedHost), avatarSize: 24)
],
);
}
......
......@@ -3,6 +3,7 @@ import 'package:jihu_gitlab_app/core/load_state.dart';
import 'package:jihu_gitlab_app/core/log_helper.dart';
import 'package:jihu_gitlab_app/core/net/api.dart';
import 'package:jihu_gitlab_app/core/net/http_client.dart';
import 'package:jihu_gitlab_app/core/project_provider.dart';
import 'package:jihu_gitlab_app/core/system_version_detector.dart';
import 'package:jihu_gitlab_app/l10n/jihu_localizations.dart';
import 'package:jihu_gitlab_app/modules/mr/models/merge_request.dart';
......@@ -23,7 +24,6 @@ class MergeRequestModel {
late int mergeRequestIid;
late TabController _tabController;
late TickerProvider _tickerProvider;
String? destinationHost;
MergeRequest? mr;
SystemType systemType = SystemType.latest;
......@@ -36,7 +36,6 @@ class MergeRequestModel {
projectName = arguments['projectName'];
projectFullPath = arguments['fullPath'];
mergeRequestIid = arguments['mergeRequestIid'];
destinationHost = arguments['destinationHost'];
_tickerProvider = tickerProvider;
_tabController = TabController(initialIndex: 0, length: _tabLength, vsync: _tickerProvider);
}
......@@ -49,9 +48,9 @@ class MergeRequestModel {
}
Future<bool> isRebaseInProgress() async {
var resp = destinationHost == null
var resp = ProjectProvider().specifiedHost == null
? await HttpClient.instance().post(Api.graphql(), queryRebaseInProgressGraphQLRequestBody(projectFullPath, mergeRequestIid))
: await HttpClient.instance().post('${destinationHost!}${Api.graphql()}', queryRebaseInProgressGraphQLRequestBody(projectFullPath, mergeRequestIid));
: await HttpClient.instance().post('${ProjectProvider().specifiedHost!}${Api.graphql()}', queryRebaseInProgressGraphQLRequestBody(projectFullPath, mergeRequestIid));
return resp.body()['data']?['project']?['mergeRequest']?['rebaseInProgress'];
}
......@@ -73,9 +72,9 @@ class MergeRequestModel {
List<Diff> allDiffs = [];
try {
do {
var resp = destinationHost == null
var resp = ProjectProvider().specifiedHost == null
? await HttpClient.instance().get<List<dynamic>>(Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/diffs?page=$page&per_page=$pageSize'))
: await HttpClient.instance().get<List<dynamic>>(destinationHost! + Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/diffs?page=$page&per_page=$pageSize'));
: await HttpClient.instance().get<List<dynamic>>(ProjectProvider().specifiedHost! + Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/diffs?page=$page&per_page=$pageSize'));
var list = resp.body().map((e) => Diff.fromJson(e)).toList();
allDiffs.addAll(list);
hasNextPage = list.length >= pageSize;
......@@ -90,18 +89,18 @@ class MergeRequestModel {
Future<void> _getBasicMr(void Function()? setState) {
return _makeRefresh(() async {
var resp = destinationHost == null
var resp = ProjectProvider().specifiedHost == null
? await HttpClient.instance().post(Api.graphql(), getMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid))
: await HttpClient.instance().post('${destinationHost!}${Api.graphql()}', getMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid));
: await HttpClient.instance().post('${ProjectProvider().specifiedHost!}${Api.graphql()}', getMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid));
mr = MergeRequest.fromJson(resp.body()['data']['project']);
}, setState);
}
Future<void> _getMrForPaid(void Function()? setState) async {
try {
var resp = destinationHost == null
var resp = ProjectProvider().specifiedHost == null
? await HttpClient.instance().post(Api.graphql(), getPaidMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid))
: await HttpClient.instance().post('${destinationHost!}${Api.graphql()}', getPaidMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid));
: await HttpClient.instance().post('${ProjectProvider().specifiedHost!}${Api.graphql()}', getPaidMergeRequestDetailsGraphQLRequestBody(projectFullPath, mergeRequestIid));
var project = resp.body()['data']['project'];
mr?.paidDataFromJson(project);
setState?.call();
......@@ -122,9 +121,9 @@ class MergeRequestModel {
Future<void> _getApproval(void Function() setState) async {
_makeRefresh(() async {
var resp = destinationHost == null
var resp = ProjectProvider().specifiedHost == null
? await HttpClient.instance().get<Map<String, dynamic>>(Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/approvals'))
: await HttpClient.instance().get<Map<String, dynamic>>(destinationHost! + Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/approvals'));
: await HttpClient.instance().get<Map<String, dynamic>>(ProjectProvider().specifiedHost! + Api.join('/projects/$projectId/merge_requests/$mergeRequestIid/approvals'));
approval = Approval.fromJson(resp.body());
}, setState);
}
......
......@@ -68,7 +68,6 @@ class _ProjectMergeRequestPageState extends PagedState<ProjectMergeRequestPage>
'projectName': _model.projectName,
'mergeRequestIid': int.parse(_model.mergeRequests[index].iid),
'fullPath': widget.arguments['relativePath'],
'destinationHost': ProjectProvider().specifiedHost,
};
Navigator.of(context).pushNamed(MergeRequestPage.routeName, arguments: params);
},
......
......@@ -74,7 +74,7 @@ class _ProjectPageState extends State<ProjectPage> with TickerProviderStateMixin
destinationHost: ProjectProvider().specifiedHost,
onSelectedIssueChange: isDesktopLayout(context) ? (index, params) => setState(() => _selectedItemParams = params) : null,
),
ProjectMergeRequestPage(arguments: {'relativePath': widget.arguments['relativePath'], 'destinationHost': ProjectProvider().specifiedHost}),
ProjectMergeRequestPage(arguments: {'relativePath': widget.arguments['relativePath']}),
ProjectsIterationsPage(fullPath: widget.arguments['relativePath'])
],
),
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
想要评论请 注册