Using DynamicComponent Instead of RenderFragment in ContainerBuilder

This commit is contained in:
PALIZ-DEVOPS\ajr
2023-07-12 12:43:00 +03:30
parent 563695cdfa
commit 23e8567e86

View File

@ -9,12 +9,12 @@
@if (_useadminborder) @if (_useadminborder)
{ {
<div class="app-pane-admin-border"> <div class="app-pane-admin-border">
@DynamicComponent <DynamicComponent Type="@ComponentType"></DynamicComponent>
</div> </div>
} }
else else
{ {
@DynamicComponent <DynamicComponent Type="@ComponentType"></DynamicComponent>
} }
</CascadingValue> </CascadingValue>
@ -23,6 +23,7 @@
@code { @code {
private bool _visible = true; private bool _visible = true;
private bool _useadminborder = false; private bool _useadminborder = false;
public Type ComponentType { get; set; }
[CascadingParameter] [CascadingParameter]
protected PageState PageState { get; set; } protected PageState PageState { get; set; }
@ -30,8 +31,6 @@
[Parameter] [Parameter]
public Module ModuleState { get; set; } public Module ModuleState { get; set; }
RenderFragment DynamicComponent { get; set; }
protected override void OnInitialized() protected override void OnInitialized()
{ {
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged += PropertyChanged; ((INotifyPropertyChanged)SiteState.Properties).PropertyChanged += PropertyChanged;
@ -54,17 +53,7 @@
_useadminborder = false; _useadminborder = false;
} }
DynamicComponent = builder => ComponentType = Type.GetType(container) ?? Type.GetType(Constants.DefaultContainer);
{
Type containerType = Type.GetType(container);
if (containerType == null)
{
// fallback
containerType = Type.GetType(Constants.DefaultContainer);
}
builder.OpenComponent(0, containerType);
builder.CloseComponent();
};
} }
private void PropertyChanged(object sender, PropertyChangedEventArgs e) private void PropertyChanged(object sender, PropertyChangedEventArgs e)
@ -83,4 +72,6 @@
{ {
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged -= PropertyChanged; ((INotifyPropertyChanged)SiteState.Properties).PropertyChanged -= PropertyChanged;
} }
} }