support for module header and footer content
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
@namespace Oqtane.UI
|
||||
@inject SiteState SiteState
|
||||
|
||||
@((MarkupString)ModuleState.Header)
|
||||
@if (_comment != null)
|
||||
{
|
||||
@((MarkupString)_comment)
|
||||
@ -13,6 +14,7 @@
|
||||
<RenderModeBoundary ModuleState="@ModuleState" PageState="@PageState" SiteState="@SiteState" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, _prerender)" />
|
||||
}
|
||||
}
|
||||
@((MarkupString)ModuleState.Footer)
|
||||
|
||||
@code {
|
||||
[CascadingParameter]
|
||||
@ -23,6 +25,8 @@
|
||||
|
||||
private bool _prerender;
|
||||
private string _comment;
|
||||
private string _header;
|
||||
private string _footer;
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
@ -39,11 +43,16 @@
|
||||
}
|
||||
_comment += " -->";
|
||||
|
||||
_header = ModuleState.Header;
|
||||
_footer = ModuleState.Footer;
|
||||
|
||||
if (PageState.RenderMode == RenderModes.Static && ModuleState.RenderMode == RenderModes.Interactive)
|
||||
{
|
||||
// trim PageState to mitigate page bloat caused by Blazor serializing/encrypting state when crossing render mode boundaries
|
||||
// please note that this performance optimization results in the PageState.Pages property not being available for use in Interactive components
|
||||
PageState.Site.Pages = new List<Page>();
|
||||
ModuleState.Header = string.Empty;
|
||||
ModuleState.Footer = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user