Checkout page clean up
continuous-integration/drone/pr Build is passing

This commit is contained in:
Khwezi Mngoma
2026-06-16 21:12:12 +02:00
parent 554741c2e5
commit 5d614d2a94
5 changed files with 630 additions and 79 deletions
@@ -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()