diff --git a/Oqtane.Client/Utilities/RenderModes.cs b/Oqtane.Client/Utilities/RenderModes.cs index 820dec37..4809e238 100644 --- a/Oqtane.Client/Utilities/RenderModes.cs +++ b/Oqtane.Client/Utilities/RenderModes.cs @@ -5,16 +5,16 @@ namespace Oqtane.Client.Utilities { public static class RenderModes { - public static IComponentRenderMode GetRenderMode(string renderMode) + public static IComponentRenderMode GetInteractiveRenderMode(string interactiveRenderMode, bool prerender) { - switch (renderMode) + switch (interactiveRenderMode) { case "InteractiveServer": - return RenderMode.InteractiveServer; + return new InteractiveServerRenderMode(prerender); case "InteractiveWebAssembly": - return RenderMode.InteractiveWebAssembly; + return new InteractiveWebAssemblyRenderMode(prerender); case "InteractiveAuto": - return RenderMode.InteractiveAuto; + return new InteractiveAutoRenderMode(prerender); } return null; } diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index 5ac4e664..170db48d 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -40,13 +40,27 @@ @((MarkupString)_styleSheets) - + @if (_renderMode == "Interactive") + { + + } + else + { + + } @((MarkupString)_headResources) @if (string.IsNullOrEmpty(_message)) { - + @if (_renderMode == "Interactive") + { + + } + else + { + + } @@ -69,7 +83,9 @@ @code { - private string _interactiveRenderMode = "InteractiveServer"; + private string _renderMode = "Interactive"; + private string _interactiveRenderMode = "Server"; + private bool _prerender = true; private string _language = "en"; private string _antiForgeryToken = ""; private string _remoteIPAddress = ""; @@ -102,14 +118,14 @@ var site = SiteRepository.GetSite(alias.SiteId); if (site != null && (!site.IsDeleted || url.Contains("admin/site")) && site.Runtime != "Hybrid") { - // if (!string.IsNullOrEmpty(site.Runtime)) - // { - // Runtime = site.Runtime; - // } - // if (!string.IsNullOrEmpty(site.RenderMode)) - // { - // RenderMode = site.RenderMode; - // } + if (!string.IsNullOrEmpty(site.Runtime)) + { + _interactiveRenderMode = site.Runtime; + } + if (!string.IsNullOrEmpty(site.RenderMode)) + { + _prerender = (site.RenderMode.Replace(site.Runtime, "")) == "Prerendered"; + } Route route = new Route(url, alias.Path); var page = PageRepository.GetPage(route.PagePath, site.SiteId);