This commit is contained in:
@@ -5,15 +5,10 @@ namespace MidrandBookshop.Components.Layout;
|
||||
|
||||
public partial class MainLayout(CartService cartService) : IDisposable
|
||||
{
|
||||
[Inject] private AuthenticationStateProvider AuthStateProvider { get; set; } = default!;
|
||||
[Inject] public IToastService ToastService { get; set; } = default!;
|
||||
|
||||
private Cart ShoppingCart => cartService.ShoppingCart;
|
||||
|
||||
private AuthenticationState? AuthState { get; set; }
|
||||
private ClaimsPrincipal? User { get; set; }
|
||||
private bool IsAuthenticated => User?.Identity?.IsAuthenticated ?? false;
|
||||
|
||||
private string SearchInputBuffer { get; set; } = string.Empty;
|
||||
private string GlobalSearchQuery { get; set; } = string.Empty;
|
||||
private bool IsSearchActive { get; set; } = false;
|
||||
@@ -21,13 +16,11 @@ public partial class MainLayout(CartService cartService) : IDisposable
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
AuthState = await AuthStateProvider.GetAuthenticationStateAsync();
|
||||
User = AuthState!.User;
|
||||
|
||||
Navigation.LocationChanged += OnLocationChanged;
|
||||
cartService.OnCartChanged += CartService_OnCartChanged;
|
||||
|
||||
await cartService.LoadCartFromStorageAsync();
|
||||
if (cartService.ShoppingCart.Items.Count == 0)
|
||||
await cartService.LoadCartFromStorageAsync();
|
||||
|
||||
SyncSearchQueryFromUrl();
|
||||
}
|
||||
@@ -122,16 +115,49 @@ public partial class MainLayout(CartService cartService) : IDisposable
|
||||
|
||||
private decimal GetCartTotal() => ShoppingCart?.TotalAmount ?? 0.00m;
|
||||
|
||||
private void RedirectToCart()
|
||||
private async Task RedirectToCart()
|
||||
{
|
||||
IsCartOpen = false;
|
||||
|
||||
await cartService.SaveCartToStorageAsync();
|
||||
|
||||
Navigation.NavigateTo("/cart");
|
||||
}
|
||||
|
||||
private void RedirectToCheckout()
|
||||
private async Task RedirectToCheckout()
|
||||
{
|
||||
IsCartOpen = false;
|
||||
Navigation.NavigateTo("/checkout");
|
||||
|
||||
await cartService.SaveCartToStorageAsync();
|
||||
|
||||
Navigation.NavigateTo("/checkout", forceLoad: true);
|
||||
}
|
||||
|
||||
private async Task RedirectToAccount()
|
||||
{
|
||||
IsCartOpen = false;
|
||||
|
||||
await cartService.SaveCartToStorageAsync();
|
||||
|
||||
Navigation.NavigateTo("/account", forceLoad: true);
|
||||
}
|
||||
|
||||
private async Task HandleLogin()
|
||||
{
|
||||
IsCartOpen = false;
|
||||
|
||||
await cartService.SaveCartToStorageAsync();
|
||||
|
||||
Navigation.NavigateTo("/login", forceLoad: true);
|
||||
}
|
||||
|
||||
private async Task HandleLogout()
|
||||
{
|
||||
IsCartOpen = false;
|
||||
|
||||
await cartService.SaveCartToStorageAsync();
|
||||
|
||||
Navigation.NavigateTo("/logout", forceLoad: true);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
|
||||
Reference in New Issue
Block a user