Fix diffing for consecutive text nodes
This commit is contained in:
parent
df321b9b8d
commit
b049c7f574
|
|
@ -176,14 +176,11 @@ namespace Microsoft.Blazor.RenderTree
|
||||||
{
|
{
|
||||||
var oldText = oldTree[oldNodeIndex].TextContent;
|
var oldText = oldTree[oldNodeIndex].TextContent;
|
||||||
var newText = newTree[newNodeIndex].TextContent;
|
var newText = newTree[newNodeIndex].TextContent;
|
||||||
if (string.Equals(oldText, newText, StringComparison.Ordinal))
|
if (!string.Equals(oldText, newText, StringComparison.Ordinal))
|
||||||
{
|
|
||||||
siblingIndex++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
Append(RenderTreeEdit.UpdateText(siblingIndex, newNodeIndex));
|
Append(RenderTreeEdit.UpdateText(siblingIndex, newNodeIndex));
|
||||||
}
|
}
|
||||||
|
siblingIndex++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -279,8 +279,10 @@ namespace Microsoft.Blazor.Test
|
||||||
var oldTree = new RenderTreeBuilder(new FakeRenderer());
|
var oldTree = new RenderTreeBuilder(new FakeRenderer());
|
||||||
var newTree = new RenderTreeBuilder(new FakeRenderer());
|
var newTree = new RenderTreeBuilder(new FakeRenderer());
|
||||||
var diff = new RenderTreeDiffComputer();
|
var diff = new RenderTreeDiffComputer();
|
||||||
oldTree.AddText(123, "old text");
|
oldTree.AddText(123, "old text 1");
|
||||||
newTree.AddText(123, "new text");
|
oldTree.AddText(182, "old text 2");
|
||||||
|
newTree.AddText(123, "new text 1");
|
||||||
|
newTree.AddText(182, "new text 2");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = diff.ComputeDifference(oldTree.GetNodes(), newTree.GetNodes());
|
var result = diff.ComputeDifference(oldTree.GetNodes(), newTree.GetNodes());
|
||||||
|
|
@ -291,6 +293,11 @@ namespace Microsoft.Blazor.Test
|
||||||
{
|
{
|
||||||
AssertEdit(entry, RenderTreeEditType.UpdateText, 0);
|
AssertEdit(entry, RenderTreeEditType.UpdateText, 0);
|
||||||
Assert.Equal(0, entry.NewTreeIndex);
|
Assert.Equal(0, entry.NewTreeIndex);
|
||||||
|
},
|
||||||
|
entry =>
|
||||||
|
{
|
||||||
|
AssertEdit(entry, RenderTreeEditType.UpdateText, 1);
|
||||||
|
Assert.Equal(1, entry.NewTreeIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue