@ -8,6 +8,8 @@
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@inject SiteState SiteState
|
||||
@inject IUriHelper UriHelper
|
||||
@inject INavigationInterception NavigationInterception
|
||||
@inject IComponentContext ComponentContext
|
||||
@inject IJSRuntime jsRuntime
|
||||
@inject IAliasService AliasService
|
||||
@inject ITenantService TenantService
|
||||
@ -17,21 +19,24 @@
|
||||
@inject IModuleService ModuleService
|
||||
@inject IModuleDefinitionService ModuleDefinitionService
|
||||
@inject IThemeService ThemeService
|
||||
@implements IHandleAfterRender
|
||||
|
||||
@DynamicComponent
|
||||
|
||||
@code {
|
||||
|
||||
[CascadingParameter] PageState PageState { get; set; }
|
||||
[CascadingParameter] PageState PageState { get; set; }
|
||||
|
||||
[Parameter] Action<PageState> OnStateChange { get; set; }
|
||||
[Parameter] Action<PageState> OnStateChange { get; set; }
|
||||
|
||||
RenderFragment DynamicComponent { get; set; }
|
||||
private string _absoluteUri;
|
||||
PageState pagestate;
|
||||
PageState pagestate;
|
||||
RenderFragment DynamicComponent { get; set; }
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
string _absoluteUri;
|
||||
bool _navigationInterceptionEnabled;
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
_absoluteUri = UriHelper.GetAbsoluteUri();
|
||||
UriHelper.OnLocationChanged += OnLocationChanged;
|
||||
|
||||
@ -43,23 +48,23 @@
|
||||
builder.CloseComponent();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
public void Dispose()
|
||||
{
|
||||
UriHelper.OnLocationChanged -= OnLocationChanged;
|
||||
}
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
if (PageState == null)
|
||||
{
|
||||
await Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task Refresh()
|
||||
{
|
||||
private async Task Refresh()
|
||||
{
|
||||
List<ModuleDefinition> moduledefinitions;
|
||||
List<Models.Theme> themes;
|
||||
List<Alias> aliases;
|
||||
@ -235,21 +240,26 @@
|
||||
{
|
||||
// site does not exist
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async void OnLocationChanged(object sender, LocationChangedEventArgs args)
|
||||
{
|
||||
private async void OnLocationChanged(object sender, LocationChangedEventArgs args)
|
||||
{
|
||||
_absoluteUri = args.Location;
|
||||
await LocationChanged();
|
||||
}
|
||||
|
||||
public async Task LocationChanged()
|
||||
{
|
||||
await Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, string> ParseQueryString(string path)
|
||||
Task IHandleAfterRender.OnAfterRenderAsync()
|
||||
{
|
||||
if (!_navigationInterceptionEnabled && ComponentContext.IsConnected)
|
||||
{
|
||||
_navigationInterceptionEnabled = true;
|
||||
return NavigationInterception.EnableNavigationInterceptionAsync();
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private Dictionary<string, string> ParseQueryString(string path)
|
||||
{
|
||||
Dictionary<string, string> querystring = new Dictionary<string, string>();
|
||||
if (path.IndexOf("?") != -1)
|
||||
{
|
||||
@ -270,10 +280,10 @@
|
||||
}
|
||||
}
|
||||
return querystring;
|
||||
}
|
||||
}
|
||||
|
||||
private List<Module> ProcessModules(List<Module> modules, List<ModuleDefinition> moduledefinitions, string control, string panes)
|
||||
{
|
||||
private List<Module> ProcessModules(List<Module> modules, List<ModuleDefinition> moduledefinitions, string control, string panes)
|
||||
{
|
||||
ModuleDefinition moduledefinition;
|
||||
|
||||
if (control == "")
|
||||
@ -325,10 +335,10 @@
|
||||
module.PaneModuleCount = paneindex[module.Pane] + 1;
|
||||
}
|
||||
return modules;
|
||||
}
|
||||
}
|
||||
|
||||
private Alias GetAlias(string absoluteUri, List<Alias> aliases)
|
||||
{
|
||||
private Alias GetAlias(string absoluteUri, List<Alias> aliases)
|
||||
{
|
||||
|
||||
string aliasname;
|
||||
Alias alias = null;
|
||||
@ -353,6 +363,6 @@
|
||||
}
|
||||
alias.Scheme = uri.Scheme;
|
||||
return alias;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user