Merge pull request #3755 from sbwalker/dev

create component using RenderTreeBuilder
This commit is contained in:
Shaun Walker 2024-02-09 15:46:59 -05:00 committed by GitHub
commit 901b23e5ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 7 deletions

View File

@ -11,13 +11,13 @@ namespace Oqtane.UI
switch (runtime) switch (runtime)
{ {
case Runtimes.Server: case Runtimes.Server:
return new InteractiveServerRenderMode(prerender); return new InteractiveServerRenderMode(prerender: prerender);
case Runtimes.WebAssembly: case Runtimes.WebAssembly:
return new InteractiveWebAssemblyRenderMode(prerender); return new InteractiveWebAssemblyRenderMode(prerender: prerender);
case Runtimes.Auto: case Runtimes.Auto:
return new InteractiveAutoRenderMode(prerender); return new InteractiveAutoRenderMode(prerender: prerender);
} }
return new InteractiveServerRenderMode(prerender); // default to interactiver server return new InteractiveServerRenderMode(prerender: prerender); // default to interactiver server
} }
} }
} }

View File

@ -14,7 +14,7 @@
{ {
<ModuleMessage Message="@_messageContent" Type="@_messageType" /> <ModuleMessage Message="@_messageContent" Type="@_messageType" />
} }
<DynamicComponent Type="@ModuleType" Parameters="@ModuleParameters"></DynamicComponent> @DynamicComponent
@if (_progressIndicator) @if (_progressIndicator)
{ {
<div class="app-progress-indicator"></div> <div class="app-progress-indicator"></div>
@ -37,7 +37,7 @@ else
@code { @code {
private Type ModuleType { get; set; } private Type ModuleType { get; set; }
private IDictionary<string, object> ModuleParameters { get; set; } RenderFragment DynamicComponent { get; set; }
private string _messageContent; private string _messageContent;
private MessageType _messageType; private MessageType _messageType;
@ -77,7 +77,12 @@ else
ComponentSiteState.RemoteIPAddress = SiteState.RemoteIPAddress; ComponentSiteState.RemoteIPAddress = SiteState.RemoteIPAddress;
ComponentSiteState.IsPrerendering = SiteState.IsPrerendering; ComponentSiteState.IsPrerendering = SiteState.IsPrerendering;
ModuleParameters = new Dictionary<string, object> { { "RenderModeBoundary", this } }; DynamicComponent = builder =>
{
builder.OpenComponent(0, ModuleType);
builder.AddAttribute(1, "RenderModeBoundary", this);
builder.CloseComponent();
};
} }
else else
{ {