mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-08-16 12:31:43 +02:00
.config
.run
.workdir
Agent
Common
Docker
Server
Phantom.Server
Phantom.Server.Database
Phantom.Server.Database.Postgres
Phantom.Server.Minecraft
Phantom.Server.Rpc
Phantom.Server.Services
Phantom.Server.Web
Base
LoginEvents.cs
Navigation.cs
PhantomComponent.cs
Layout
Pages
Shared
Utils
wwwroot
App.razor
Configuration.cs
Launcher.cs
Phantom.Server.Web.csproj
_Imports.razor
appsettings.json
Phantom.Server.Web.Bootstrap
Phantom.Server.Web.Components
Phantom.Server.Web.Identity
Utils
.dockerignore
.gitattributes
.gitignore
AddMigration.bat
AddMigration.sh
Directory.Build.props
Directory.Build.targets
Dockerfile
LICENSE
Packages.props
PhantomPanel.sln
README.md
global.json
34 lines
1.0 KiB
C#
34 lines
1.0 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
using System.Web;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Phantom.Server.Web.Identity.Interfaces;
|
|
|
|
namespace Phantom.Server.Web.Base;
|
|
|
|
sealed class Navigation : INavigation {
|
|
public static Func<IServiceProvider, Navigation> Create(string basePath) {
|
|
return provider => new Navigation(basePath, provider.GetRequiredService<NavigationManager>());
|
|
}
|
|
|
|
public string BasePath { get; }
|
|
|
|
private readonly NavigationManager navigationManager;
|
|
|
|
private Navigation(string basePath, NavigationManager navigationManager) {
|
|
this.BasePath = basePath;
|
|
this.navigationManager = navigationManager;
|
|
}
|
|
|
|
public bool GetQueryParameter(string key, [MaybeNullWhen(false)] out string value) {
|
|
var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri);
|
|
var query = HttpUtility.ParseQueryString(uri.Query);
|
|
|
|
value = query.Get(key);
|
|
return value != null;
|
|
}
|
|
|
|
public void NavigateTo(string url, bool forceLoad = false) {
|
|
navigationManager.NavigateTo(BasePath + url, forceLoad);
|
|
}
|
|
}
|