Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit a6200b3

Browse files
committed
Implement opening PR list in browser.
1 parent a5871c6 commit a6200b3

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

src/GitHub.App/SampleData/PullRequestListViewModelDesigner.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public PullRequestListViewModelDesigner()
6060
public string SearchQuery { get; set; }
6161
public string SelectedState { get; set; }
6262
public IReadOnlyList<string> States { get; }
63+
public Uri WebUrl => null;
6364
public ReactiveCommand<object> CreatePullRequest { get; }
6465
public ReactiveCommand<Unit> OpenItem { get; }
6566

src/GitHub.App/ViewModels/GitHubPane/PullRequestListViewModel.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.ComponentModel.Composition;
44
using System.Diagnostics;
5+
using System.Reactive.Linq;
56
using System.Threading.Tasks;
67
using GitHub.Collections;
78
using GitHub.Extensions;
@@ -24,6 +25,7 @@ public class PullRequestListViewModel : IssueListViewModelBase, IPullRequestList
2425
readonly IPullRequestSessionManager sessionManager;
2526
readonly IPullRequestService service;
2627
readonly IDisposable subscription;
28+
ObservableAsPropertyHelper<Uri> webUrl;
2729

2830
/// <summary>
2931
/// Initializes a new instance of the <see cref="PullRequestListViewModel"/> class.
@@ -45,12 +47,18 @@ public PullRequestListViewModel(
4547
this.service = service;
4648

4749
subscription = sessionManager.WhenAnyValue(x => x.CurrentSession.PullRequest.Number).Subscribe(UpdateCurrent);
50+
webUrl = this.WhenAnyValue(x => x.RemoteRepository)
51+
.Select(x => x?.CloneUrl?.ToRepositoryUrl().Append("pulls"))
52+
.ToProperty(this, x => x.WebUrl);
4853
CreatePullRequest = ReactiveCommand.Create().OnExecuteCompleted(_ => NavigateTo("pull/new"));
4954
}
5055

5156
/// <inheritdoc/>
5257
public override IReadOnlyList<string> States => states;
5358

59+
/// <inheritdoc/>
60+
public Uri WebUrl => webUrl.Value;
61+
5462
/// <inheritdoc/>
5563
public ReactiveCommand<object> CreatePullRequest { get; }
5664

src/GitHub.Exports.Reactive/ViewModels/GitHubPane/IPullRequestListViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace GitHub.ViewModels.GitHubPane
66
/// <summary>
77
/// Represents a view model which displays a pull request list.
88
/// </summary>
9-
public interface IPullRequestListViewModel : IIssueListViewModelBase
9+
public interface IPullRequestListViewModel : IIssueListViewModelBase, IOpenInBrowser
1010
{
1111
/// <summary>
1212
/// Gets a command which navigates to the "Create Pull Request" view.

0 commit comments

Comments
 (0)