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 newText = newTree[newNodeIndex].TextContent;
|
||||
if (string.Equals(oldText, newText, StringComparison.Ordinal))
|
||||
{
|
||||
siblingIndex++;
|
||||
}
|
||||
else
|
||||
if (!string.Equals(oldText, newText, StringComparison.Ordinal))
|
||||
{
|
||||
Append(RenderTreeEdit.UpdateText(siblingIndex, newNodeIndex));
|
||||
}
|
||||
siblingIndex++;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -279,8 +279,10 @@ namespace Microsoft.Blazor.Test
|
|||
var oldTree = new RenderTreeBuilder(new FakeRenderer());
|
||||
var newTree = new RenderTreeBuilder(new FakeRenderer());
|
||||
var diff = new RenderTreeDiffComputer();
|
||||
oldTree.AddText(123, "old text");
|
||||
newTree.AddText(123, "new text");
|
||||
oldTree.AddText(123, "old text 1");
|
||||
oldTree.AddText(182, "old text 2");
|
||||
newTree.AddText(123, "new text 1");
|
||||
newTree.AddText(182, "new text 2");
|
||||
|
||||
// Act
|
||||
var result = diff.ComputeDifference(oldTree.GetNodes(), newTree.GetNodes());
|
||||
|
|
@ -291,6 +293,11 @@ namespace Microsoft.Blazor.Test
|
|||
{
|
||||
AssertEdit(entry, RenderTreeEditType.UpdateText, 0);
|
||||
Assert.Equal(0, entry.NewTreeIndex);
|
||||
},
|
||||
entry =>
|
||||
{
|
||||
AssertEdit(entry, RenderTreeEditType.UpdateText, 1);
|
||||
Assert.Equal(1, entry.NewTreeIndex);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue