feat(ui): Mission-Control-Kacheln behalten Position und Identitaetsfarbe ueber Handoffs
Ein Handoff schloss die alte Pane und haengte die neue hinten an -- die Kachel sprang ans Ende und das ganze Grid ordnete sich neu. Die neue Pane wird jetzt am Index der alten eingesetzt. Dazu bekommt jede Kachel eine aus IdentityKey (Default: TaskId) abgeleitete Farbe: 3px-Streifen links am Tile, Punkt im Focus-Mode-Tab. Kein State, keine Persistenz -- derselbe Task faerbt nach App-Neustart gleich, und ein Handoff erbt die Farbe, weil er dieselbe TaskId behaelt. Nur kuehle Hues, damit nichts als Status gelesen wird.
This commit is contained in:
@@ -747,6 +747,30 @@ public class MissionControlViewModelTests : IDisposable
|
||||
Assert.Equal(0, SubscriberCount(outgoingPane, "SubmitForReviewRequested"));
|
||||
}
|
||||
|
||||
// The handoff replaces a tile in place -- appending it would push it to the end of the grid and
|
||||
// reshuffle every other tile on every phase change.
|
||||
[Fact]
|
||||
public async Task OpenMergeHelperHandoffConPtySessionAsync_KeepsPanePosition()
|
||||
{
|
||||
var worker = new FakeWorker();
|
||||
using var vm = BuildVm(worker);
|
||||
var dir = Path.Combine("C:", "Some", "Path");
|
||||
await vm.OpenAdHocConPtySessionAsync(dir);
|
||||
await vm.OpenMergeHelperConPtySessionAsync("L1", new[] { "t1" });
|
||||
await vm.OpenAdHocConPtySessionAsync(dir);
|
||||
var taskId = vm.ConPtySessions[1].TaskId!;
|
||||
var color = vm.ConPtySessions[1].IdentityColorKey;
|
||||
|
||||
await vm.OpenMergeHelperHandoffConPtySessionAsync(taskId, new[] { "t1" }, "wait");
|
||||
|
||||
Assert.Equal(3, vm.ConPtySessions.Count);
|
||||
Assert.Equal(taskId, vm.ConPtySessions[1].TaskId);
|
||||
Assert.Equal(taskId, vm.Panes[1].TaskId);
|
||||
// Same task, new pane -- the identity colour has to survive the handoff, or the tile the
|
||||
// user was tracking changes colour mid-run.
|
||||
Assert.Equal(color, vm.ConPtySessions[1].IdentityColorKey);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task OpenMergeHelperHandoffConPtySessionAsync_SubmitForReview_ResolvesToSurvivingPane()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user