@namespace Oqtane.UI @using Microsoft.AspNetCore.Http @inject IInstallationService InstallationService @inject IJSRuntime JSRuntime @inject SiteState SiteState @* the following StreamRendering attribute is required - if it is removed the framework will not render the content in static rendering *@ @attribute [StreamRendering] @if (_initialized) { @if (!_installation.Success) { } else { @if (string.IsNullOrEmpty(_installation.Message)) { if (PageState?.RenderMode == RenderModes.Static) { } else {
} } else {
@_installation.Message
} } } @code { [Parameter] public PageState PageState { get; set; } = null; [Parameter] public string RenderMode { get; set; } [Parameter] public string Runtime { get; set; } [Parameter] public string AntiForgeryToken { get; set; } = ""; [Parameter] public string AuthorizationToken { get; set; } = ""; [Parameter] public string Platform { get; set; } = ""; [CascadingParameter] HttpContext HttpContext { get; set; } private bool _initialized = false; private string _display = "display: none;"; private Installation _installation = new Installation { Success = false, Message = "" }; private PageState _pageState { get; set; } protected override async Task OnParametersSetAsync() { if (PageState != null) { _pageState = PageState; } SiteState.AntiForgeryToken = AntiForgeryToken; SiteState.AuthorizationToken = AuthorizationToken; SiteState.RemoteIPAddress = (_pageState != null) ? _pageState.RemoteIPAddress : ""; SiteState.Platform = Platform; SiteState.IsPrerendering = (HttpContext != null) ? true : false; _installation = await InstallationService.IsInstalled(); if (_installation.Alias != null) { SiteState.Alias = _installation.Alias; } _initialized = true; } protected override void OnAfterRender(bool firstRender) { if (firstRender) { // prevents flash on initial interactive page load _display = ""; StateHasChanged(); } } private void ChangeState(PageState pageState) { _pageState = pageState; StateHasChanged(); } }