improve PageState trimming

This commit is contained in:
sbwalker
2024-07-17 11:53:04 -04:00
parent 5610a14e49
commit b942a84b15
8 changed files with 16 additions and 46 deletions

View File

@ -32,11 +32,11 @@
{
@if (PageState.RenderMode == RenderModes.Interactive)
{
<ControlPanelInteractive PageState="@_controlPanelPageState" SiteState="@SiteState" ButtonClass="@ButtonClass" ContainerClass="@ContainerClass" HeaderClass="@HeaderClass" BodyClass="@BodyClass" ShowLanguageSwitcher="@ShowLanguageSwitcher" LanguageDropdownAlignment="@LanguageDropdownAlignment" CanViewAdminDashboard="@_canViewAdminDashboard" />
<ControlPanelInteractive PageState="@_pageState" SiteState="@SiteState" ButtonClass="@ButtonClass" ContainerClass="@ContainerClass" HeaderClass="@HeaderClass" BodyClass="@BodyClass" ShowLanguageSwitcher="@ShowLanguageSwitcher" LanguageDropdownAlignment="@LanguageDropdownAlignment" CanViewAdminDashboard="@_canViewAdminDashboard" />
}
else
{
<ControlPanelInteractive PageState="@_controlPanelPageState" SiteState="@SiteState" ButtonClass="@ButtonClass" ContainerClass="@ContainerClass" HeaderClass="@HeaderClass" BodyClass="@BodyClass" ShowLanguageSwitcher="@ShowLanguageSwitcher" LanguageDropdownAlignment="@LanguageDropdownAlignment" CanViewAdminDashboard="@_canViewAdminDashboard" @rendermode="@InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, false)" />
<ControlPanelInteractive PageState="@_pageState" SiteState="@SiteState" ButtonClass="@ButtonClass" ContainerClass="@ContainerClass" HeaderClass="@HeaderClass" BodyClass="@BodyClass" ShowLanguageSwitcher="@ShowLanguageSwitcher" LanguageDropdownAlignment="@LanguageDropdownAlignment" CanViewAdminDashboard="@_canViewAdminDashboard" @rendermode="@InteractiveRenderMode.GetInteractiveRenderMode(PageState.Site.Runtime, false)" />
}
}
@ -59,7 +59,7 @@
[Parameter]
public string LanguageDropdownAlignment { get; set; } = string.Empty; // Empty or Left or Right
private ControlPanelPageState _controlPanelPageState;
private PageState _pageState;
private bool _canViewAdminDashboard = false;
private bool _showEditMode = false;
@ -85,14 +85,14 @@
}
// trim PageState to mitigate page bloat caused by Blazor serializing/encrypting state when crossing render mode boundaries
_controlPanelPageState = new ControlPanelPageState
_pageState = new PageState
{
Alias = PageState.Alias,
Site = new Site
{
DefaultContainerType = PageState.Site.DefaultContainerType,
DefaultContainerType = PageState.Site.DefaultContainerType,
Settings = PageState.Site.Settings,
Themes = PageState.Site.Themes
Themes = PageState.Site.Themes
},
Page = PageState.Page,
User = PageState.User,

View File

@ -228,7 +228,7 @@
public SiteState SiteState { get; set; }
[Parameter]
public ControlPanelPageState PageState { get; set; }
public PageState PageState { get; set; }
[Parameter]
public string ButtonClass { get; set; }

View File

@ -1,19 +0,0 @@
using System.Collections.Generic;
using System;
using Oqtane.Models;
using Oqtane.UI;
namespace Oqtane.Themes.Controls
{
public class ControlPanelPageState
{
public Alias Alias { get; set; }
public Site Site { get; set; }
public Page Page { get; set; }
public User User { get; set; }
public Uri Uri { get; set; }
public Route Route { get; set; }
public string RenderMode { get; set; }
public Shared.Runtime Runtime { get; set; }
}
}