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

Commit 43a6982

Browse files
committed
Correctly validate source branch.
Don't try to validate source branch using `BranchValidator` while initialization is in progress. Fixes #455.
1 parent b74a115 commit 43a6982

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/GitHub.App/ViewModels/PullRequestCreationViewModel.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
using GitHub.Extensions;
1414
using NullGuard;
1515
using GitHub.App;
16+
using System.Reactive.Subjects;
17+
using System.Reactive;
1618

1719
namespace GitHub.ViewModels
1820
{
@@ -22,6 +24,8 @@ public class PullRequestCreationViewModel : BaseViewModel, IPullRequestCreationV
2224
{
2325
readonly IRepositoryHost repositoryHost;
2426
readonly ISimpleRepositoryModel activeRepo;
27+
readonly Subject<Unit> initializationComplete = new Subject<Unit>();
28+
bool initialized;
2529

2630
[ImportingConstructor]
2731
PullRequestCreationViewModel(
@@ -52,7 +56,10 @@ public PullRequestCreationViewModel(IRepositoryHost repositoryHost, ISimpleRepos
5256

5357
var branchObs = this.WhenAny(
5458
x => x.SourceBranch,
55-
source => source.Value);
59+
source => source.Value)
60+
.Where(_ => initialized)
61+
.Merge(initializationComplete.Select(_ => SourceBranch))
62+
.Do(x => System.Diagnostics.Debug.WriteLine("SourceBranch:" + x));
5663

5764
BranchValidator = ReactivePropertyValidator.ForObservable(branchObs)
5865
.IfTrue(x => x == null, Resources.PullRequestSourceBranchDoesNotExist)
@@ -82,12 +89,18 @@ public PullRequestCreationViewModel(IRepositoryHost repositoryHost, ISimpleRepos
8289

8390
public override void Initialize([AllowNull] ViewWithData data)
8491
{
92+
initialized = false;
8593
base.Initialize(data);
8694

8795
repositoryHost.ModelService.GetBranches(activeRepo)
8896
.ToReadOnlyList()
8997
.ObserveOn(RxApp.MainThreadScheduler)
90-
.Subscribe(x => Branches = x);
98+
.Subscribe(x =>
99+
{
100+
Branches = x;
101+
initialized = true;
102+
initializationComplete.OnNext(Unit.Default);
103+
});
91104
}
92105

93106
IBranch sourceBranch;

0 commit comments

Comments
 (0)