feat: hide product prices from unauthenticated (guest) users
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 4m48s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 4m48s
Guests can browse products and product details for presentation purposes, but prices are hidden behind a 'وارد شوید' prompt (lock icon). Authenticated users see prices as before. Affected pages: - Landing page (Index): top-selling regular + discount sections - Store/Products list - Store/ProductDetail (desktop price + mobile sticky bar) - DiscountStore/Products list - DiscountStore/ProductDetail (full price box) Each code-behind now checks AuthService.IsAuthenticatedAsync() on init and stores the result in _isAuthenticated for use in the template. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -63,49 +63,58 @@
|
||||
}
|
||||
|
||||
<!-- Price & Discount -->
|
||||
<MudPaper Class="pa-4 rounded-lg discount-price-box" Elevation="0">
|
||||
<MudStack Spacing="2">
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت محصول:</MudText>
|
||||
<MudText Typo="Typo.body1" Class="fw-bold">
|
||||
@($"{_product.Price:N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
@if (VAT.IsEnabled)
|
||||
{
|
||||
@if (_isAuthenticated)
|
||||
{
|
||||
<MudPaper Class="pa-4 rounded-lg discount-price-box" Elevation="0">
|
||||
<MudStack Spacing="2">
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">مالیات ارزش افزوده (@VAT.VatPercentage%):</MudText>
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">
|
||||
@($"{VAT.CalculateVAT(_product.Price):N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت با مالیات:</MudText>
|
||||
<MudText Typo="Typo.h5" Color="Color.Primary" Class="fw-bold">
|
||||
@($"{VAT.AddVAT(_product.Price):N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت نهایی:</MudText>
|
||||
<MudText Typo="Typo.h5" Color="Color.Primary" Class="fw-bold">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت محصول:</MudText>
|
||||
<MudText Typo="Typo.body1" Class="fw-bold">
|
||||
@($"{_product.Price:N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
@if (_product.MaxDiscountPercent > 0)
|
||||
{
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">اعتبار از کیف اعتباری:</MudText>
|
||||
<MudChip T="string" Color="Color.Error" Variant="Variant.Filled" Size="Size.Small">
|
||||
@_product.MaxDiscountPercent% (@($"{_product.Price * _product.MaxDiscountPercent / 100:N0}") تومان)
|
||||
</MudChip>
|
||||
</MudStack>
|
||||
}
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
@if (VAT.IsEnabled)
|
||||
{
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">مالیات ارزش افزوده (@VAT.VatPercentage%):</MudText>
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">
|
||||
@($"{VAT.CalculateVAT(_product.Price):N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت با مالیات:</MudText>
|
||||
<MudText Typo="Typo.h5" Color="Color.Primary" Class="fw-bold">
|
||||
@($"{VAT.AddVAT(_product.Price):N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">قیمت نهایی:</MudText>
|
||||
<MudText Typo="Typo.h5" Color="Color.Primary" Class="fw-bold">
|
||||
@($"{_product.Price:N0}") تومان
|
||||
</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
@if (_product.MaxDiscountPercent > 0)
|
||||
{
|
||||
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudText Typo="Typo.body2" Class="mud-text-secondary">اعتبار از کیف اعتباری:</MudText>
|
||||
<MudChip T="string" Color="Color.Error" Variant="Variant.Filled" Size="Size.Small">
|
||||
@_product.MaxDiscountPercent% (@($"{_product.Price * _product.MaxDiscountPercent / 100:N0}") تومان)
|
||||
</MudChip>
|
||||
</MudStack>
|
||||
}
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudAlert Severity="Severity.Info" Dense="true" Variant="Variant.Outlined" Icon="@Icons.Material.Filled.Lock">
|
||||
برای مشاهده قیمت ابتدا وارد شوید
|
||||
</MudAlert>
|
||||
}
|
||||
|
||||
<!-- Stock & Stats -->
|
||||
<MudStack Row="true" Spacing="3" Class="flex-wrap">
|
||||
|
||||
Reference in New Issue
Block a user