@namespace Oqtane.Shared
@DynamicComponent
@if (progressindicator)
{
}
@code {
[CascadingParameter]
protected PageState PageState { get; set; }
[CascadingParameter]
private Module ModuleState { get; set; }
private ModuleMessage modulemessage { get; set; }
string message;
RenderFragment DynamicComponent { get; set; }
bool progressindicator = false;
protected override void OnParametersSet()
{
DynamicComponent = builder =>
{
string typename = ModuleState.ModuleType;
// check for core module actions component
if (Constants.DefaultModuleActions.Contains(PageState.Control))
{
typename = Constants.DefaultModuleActionsTemplate.Replace("{Control}", PageState.Control);
}
Type moduleType = null;
if (typename != null)
{
moduleType = Type.GetType(typename);
}
if (moduleType != null)
{
builder.OpenComponent(0, moduleType);
builder.CloseComponent();
}
else
{
// module does not exist with typename specified
message = "Module Does Not Have A Component Named " + Utilities.GetTypeNameClass(typename) + ".razor";
}
};
}
public void AddModuleMessage(string message, MessageType type)
{
progressindicator = false;
modulemessage.SetModuleMessage(message, type);
}
public void ShowProgressIndicator()
{
progressindicator = true;
StateHasChanged();
}
public void HideProgressIndicator()
{
progressindicator = true;
StateHasChanged();
}
}