Make OpenRegion/CloseRegion not public because they are only to support AddContent(seq, fragment)
This commit is contained in:
parent
41aae0b7e6
commit
ad2c63ca37
|
|
@ -201,22 +201,17 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree
|
||||||
entry = entry.WithComponentSubtreeLength(_entries.Count - indexOfEntryBeingClosed);
|
entry = entry.WithComponentSubtreeLength(_entries.Count - indexOfEntryBeingClosed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
// Internal for tests
|
||||||
/// Appends a frame denoting the start of a region (that is, a tree fragment that is
|
// Not public because there's no current use case for user code defining regions arbitrarily.
|
||||||
/// processed as a unit for the purposes of diffing).
|
// Currently the sole use case for regions is when appending a RenderFragment.
|
||||||
/// </summary>
|
internal void OpenRegion(int sequence)
|
||||||
/// <param name="sequence">An integer that represents the position of the instruction in the source code.</param>
|
|
||||||
public void OpenRegion(int sequence)
|
|
||||||
{
|
{
|
||||||
_openElementIndices.Push(_entries.Count);
|
_openElementIndices.Push(_entries.Count);
|
||||||
Append(RenderTreeFrame.Region(sequence));
|
Append(RenderTreeFrame.Region(sequence));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
// See above for why this is not public
|
||||||
/// Marks a previously appended region frame as closed. Calls to this method
|
internal void CloseRegion()
|
||||||
/// must be balanced with calls to <see cref="OpenRegion"/>.
|
|
||||||
/// </summary>
|
|
||||||
public void CloseRegion()
|
|
||||||
{
|
{
|
||||||
var indexOfEntryBeingClosed = _openElementIndices.Pop();
|
var indexOfEntryBeingClosed = _openElementIndices.Pop();
|
||||||
ref var entry = ref _entries.Buffer[indexOfEntryBeingClosed];
|
ref var entry = ref _entries.Buffer[indexOfEntryBeingClosed];
|
||||||
|
|
|
||||||
|
|
@ -43,22 +43,20 @@ namespace BasicTestApp
|
||||||
private void Render() => _renderHandle.Render(builder =>
|
private void Render() => _renderHandle.Render(builder =>
|
||||||
{
|
{
|
||||||
builder.OpenElement(0, "div"); // Container so we can see that passing through regions is OK
|
builder.OpenElement(0, "div"); // Container so we can see that passing through regions is OK
|
||||||
builder.OpenRegion(1);
|
builder.AddContent(1, "Region will be toggled below ");
|
||||||
builder.AddContent(2, "Region will be toggled below ");
|
|
||||||
|
|
||||||
if (_showRegion)
|
if (_showRegion)
|
||||||
{
|
{
|
||||||
builder.AddContent(3, _exampleContent);
|
builder.AddContent(2, _exampleContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.OpenElement(4, "button");
|
builder.OpenElement(3, "button");
|
||||||
builder.AddAttribute(5, "onclick", ToggleRegion);
|
builder.AddAttribute(4, "onclick", ToggleRegion);
|
||||||
builder.AddContent(6, "Toggle");
|
builder.AddContent(5, "Toggle");
|
||||||
builder.CloseElement();
|
builder.CloseElement();
|
||||||
|
|
||||||
builder.CloseRegion();
|
builder.OpenElement(6, "p");
|
||||||
builder.OpenElement(7, "p");
|
builder.AddContent(7, "The end");
|
||||||
builder.AddContent(8, "The end");
|
|
||||||
builder.CloseElement();
|
builder.CloseElement();
|
||||||
builder.CloseElement();
|
builder.CloseElement();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue