u
This commit is contained in:
@@ -1,60 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Blazored.LocalStorage;
|
||||
using FrontOffice.Main.Utilities;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Routing;
|
||||
|
||||
namespace FrontOffice.Main;
|
||||
|
||||
public partial class App
|
||||
{
|
||||
private const string TokenStorageKey = "auth:token";
|
||||
|
||||
[Inject] private ILocalStorageService LocalStorage { get; set; } = default!;
|
||||
[Inject] private NavigationManager Navigation { get; set; } = default!;
|
||||
|
||||
private async Task HandleNavigationAsync(NavigationContext context)
|
||||
{
|
||||
var relativePath = Navigation.ToBaseRelativePath(context.Path);
|
||||
if (IsAuthPath(relativePath))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var token = await LocalStorage.GetItemAsync<string>(TokenStorageKey);
|
||||
if (string.IsNullOrWhiteSpace(token))
|
||||
{
|
||||
context.PreventNavigation();
|
||||
|
||||
var normalized = NormalizePath(relativePath);
|
||||
var redirectQuery = string.IsNullOrEmpty(normalized) || normalized == "/"
|
||||
? string.Empty
|
||||
: $"?redirect={Uri.EscapeDataString(normalized)}";
|
||||
|
||||
Navigation.NavigateTo(RouteConstants.Auth.Phone + redirectQuery, forceLoad: true);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsAuthPath(string? path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
path = path.TrimStart('/');
|
||||
return path.StartsWith("auth", StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
private static string NormalizePath(string? path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var normalized = path.StartsWith('/') ? path : "/" + path;
|
||||
return normalized;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
<PageTitle>خانه</PageTitle>
|
||||
|
||||
<h1>Hello, world!</h1>
|
||||
|
||||
Welcome to your new app.
|
||||
<MudPaper Class="d-flex flex-column align-center justify-center pa-6" Elevation="0">
|
||||
<MudText Typo="Typo.h4" Class="mb-2">داشبورد فرانتآفیس</MudText>
|
||||
<MudText Typo="Typo.body1" Align="Align.Center" Style="max-width:420px;">
|
||||
پس از ورود با شماره موبایل، میتوانید وضعیت سفارشها و شبکه کاربری خود را مشاهده کنید.
|
||||
</MudText>
|
||||
</MudPaper>
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="">FrontOffice.Main</a>
|
||||
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu">
|
||||
<nav class="flex-column">
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
<span class="oi oi-home" aria-hidden="true"></span> Home
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="counter">
|
||||
<span class="oi oi-plus" aria-hidden="true"></span> Counter
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="fetchdata">
|
||||
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
|
||||
</NavLink>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private bool collapseNavMenu = true;
|
||||
|
||||
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||
|
||||
private void ToggleNavMenu()
|
||||
{
|
||||
collapseNavMenu = !collapseNavMenu;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user