diff --git a/Oqtane.Client/Themes/Controls/Container/ModuleActions.razor b/Oqtane.Client/Themes/Controls/Container/ModuleActions.razor index 3172d540..4b973c48 100644 --- a/Oqtane.Client/Themes/Controls/Container/ModuleActions.razor +++ b/Oqtane.Client/Themes/Controls/Container/ModuleActions.razor @@ -6,21 +6,21 @@ { @if (PageState.RenderMode == RenderModes.Interactive) { - + } else { - + } } @code { - private ModuleActionsPageState _moduleActionsPageState; + private PageState _pageState; protected override void OnParametersSet() { // trim PageState to mitigate page bloat caused by Blazor serializing/encrypting state when crossing render mode boundaries - _moduleActionsPageState = new ModuleActionsPageState + _pageState = new PageState { Alias = PageState.Alias, Page = PageState.Page, diff --git a/Oqtane.Client/Themes/Controls/Container/ModuleActionsBase.cs b/Oqtane.Client/Themes/Controls/Container/ModuleActionsBase.cs index bcbfadae..93e935b9 100644 --- a/Oqtane.Client/Themes/Controls/Container/ModuleActionsBase.cs +++ b/Oqtane.Client/Themes/Controls/Container/ModuleActionsBase.cs @@ -9,6 +9,7 @@ using Oqtane.Services; using Oqtane.Shared; using System.Net; using Microsoft.Extensions.Localization; +using Oqtane.UI; // ReSharper disable UnassignedGetOnlyAutoProperty // ReSharper disable MemberCanBePrivate.Global @@ -22,7 +23,7 @@ namespace Oqtane.Themes.Controls [Inject] public IModuleService ModuleService { get; set; } [Inject] public IStringLocalizer Localizer { get; set; } - [Parameter] public ModuleActionsPageState PageState { get; set; } + [Parameter] public PageState PageState { get; set; } [Parameter] public Module ModuleState { get; set; } public List Actions; diff --git a/Oqtane.Client/Themes/Controls/Container/ModuleActionsPageState.cs b/Oqtane.Client/Themes/Controls/Container/ModuleActionsPageState.cs deleted file mode 100644 index fd8ef018..00000000 --- a/Oqtane.Client/Themes/Controls/Container/ModuleActionsPageState.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Oqtane.Models; - -namespace Oqtane.Themes.Controls -{ - public class ModuleActionsPageState - { - public Alias Alias { get; set; } - public Page Page { get; set; } - public User User { get; set; } - public bool EditMode { get; set; } - } -} diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor index 71af7603..83087013 100644 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor @@ -32,11 +32,11 @@ { @if (PageState.RenderMode == RenderModes.Interactive) { - + } else { - + } } @@ -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, diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanelInteractive.razor b/Oqtane.Client/Themes/Controls/Theme/ControlPanelInteractive.razor index 15185991..730e7dd8 100644 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanelInteractive.razor +++ b/Oqtane.Client/Themes/Controls/Theme/ControlPanelInteractive.razor @@ -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; } diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanelPageState.cs b/Oqtane.Client/Themes/Controls/Theme/ControlPanelPageState.cs deleted file mode 100644 index f0be1833..00000000 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanelPageState.cs +++ /dev/null @@ -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; } - } -} diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index 15948e83..dc85e180 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -43,7 +43,7 @@ { // 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(); + PageState.Site.Pages = null; } } diff --git a/Oqtane.Client/UI/PageState.cs b/Oqtane.Client/UI/PageState.cs index b8a3bffc..0c17c530 100644 --- a/Oqtane.Client/UI/PageState.cs +++ b/Oqtane.Client/UI/PageState.cs @@ -30,11 +30,11 @@ namespace Oqtane.UI public List Pages { - get { return Site.Pages; } + get { return Site?.Pages; } } public List Languages { - get { return Site.Languages; } + get { return Site?.Languages; } } } }