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>
|
<PageTitle>خانه</PageTitle>
|
||||||
|
|
||||||
<h1>Hello, world!</h1>
|
<MudPaper Class="d-flex flex-column align-center justify-center pa-6" Elevation="0">
|
||||||
|
<MudText Typo="Typo.h4" Class="mb-2">داشبورد فرانتآفیس</MudText>
|
||||||
Welcome to your new app.
|
<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