@using Oqtane.Models @using Oqtane.Shared @using Oqtane.Modules @DynamicComponent @code { [CascadingParameter] protected PageState PageState { get; set; } [Parameter] private Module Module { get; set; } Module ModuleState; string container; RenderFragment DynamicComponent { get; set; } protected override void OnInit() { DynamicComponent = builder => { if (ModuleState != null) { Type containerType = Type.GetType(container); if (containerType != null) { builder.OpenComponent(0, containerType); builder.CloseComponent(); } else { // container does not exist with type specified builder.OpenComponent(0, Type.GetType(Constants.ModuleMessageControl)); builder.AddAttribute(1, "Type", MessageType.Error); builder.AddAttribute(2, "Message", "Error Loading Module Container " + container); builder.CloseComponent(); } } }; } protected override Task OnParametersSetAsync() { if (PageState.Page.PageId == Module.PageId) { ModuleState = Module; // passed in from Pane component container = ModuleState.ContainerType; if (PageState.ModuleId != -1 && PageState.Control != "") { container = Constants.DefaultAdminContainer; } } return Task.CompletedTask; } }