Pass RenderMode and Runtime to Head component

This commit is contained in:
sbwalker 2024-02-19 18:30:01 -05:00
parent 4db3bafeda
commit 4fad97e8b1
3 changed files with 29 additions and 13 deletions

View File

@ -19,6 +19,12 @@
private string _title = "";
private string _content = "";
[Parameter]
public string RenderMode { get; set; }
[Parameter]
public string Runtime { get; set; }
protected override void OnInitialized()
{
((INotifyPropertyChanged)SiteState.Properties).PropertyChanged += PropertyChanged;
@ -49,15 +55,15 @@
private string RemoveScripts(string headcontent)
{
// if (!string.IsNullOrEmpty(headcontent))
// {
// var index = headcontent.IndexOf("<script");
// while (index >= 0)
// {
// headcontent = headcontent.Remove(index, headcontent.IndexOf("</script>") + 9 - index);
// index = headcontent.IndexOf("<script");
// }
// }
if (!string.IsNullOrEmpty(headcontent) && RenderMode == RenderModes.Interactive)
{
var index = headcontent.IndexOf("<script");
while (index >= 0)
{
headcontent = headcontent.Remove(index, headcontent.IndexOf("</script>") + 9 - index);
index = headcontent.IndexOf("<script");
}
}
return headcontent;
}

View File

@ -1,6 +1,16 @@
<DynamicComponent Type="@ComponentType"></DynamicComponent>
@using Oqtane.Shared;
<DynamicComponent Type="@ComponentType" Parameters="@Parameters"></DynamicComponent>
@code {
Type ComponentType = Type.GetType("Oqtane.UI.Head, Oqtane.Client");
Type ComponentType = Type.GetType("Oqtane.UI.Head, Oqtane.Client");
private IDictionary<string, object> Parameters { get; set; }
protected override void OnInitialized()
{
Parameters = new Dictionary<string, object>();
Parameters.Add(new KeyValuePair<string, object>("RenderMode", RenderModes.Interactive));
Parameters.Add(new KeyValuePair<string, object>("Runtime", Runtimes.Hybrid));
}
}

View File

@ -50,11 +50,11 @@
<link id="app-stylesheet-module" />
@if (_renderMode == RenderModes.Static)
{
<Head />
<Head RenderMode="@_renderMode" Runtime="@_runtime" />
}
else
{
<Head @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" />
<Head RenderMode="@_renderMode" Runtime="@_runtime" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" />
}
@((MarkupString)_headResources)
</head>