This commit is contained in:
MeysamMoghaddam
2025-09-28 04:59:45 +03:30
parent db94bd337f
commit d073995e02
3 changed files with 6 additions and 102 deletions

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -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;
}
}