feat: full FrontOffice updates - discount store, blog, payment gateway, UI improvements
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 4m55s

- Discount store pages (products, cart, orders, order detail)
- Blog pages and services
- Payment gateway callback page
- AppImage component, EmptyState, LoadingState, PageHeader
- DiscountCartService, DiscountOrderService, DiscountProductService
- BlogCategoryService, BlogPostService, SitePageService, ImageCacheService
- PhoneVerifyForm component
- Profile Hub page
- UI/UX improvements across all pages
- landing.js for homepage
- Config and routing updates
This commit is contained in:
masoodafar-web
2026-02-16 00:51:39 +03:30
parent f0d1156457
commit 6db83ccd90
104 changed files with 7668 additions and 1370 deletions
+15 -16
View File
@@ -4,26 +4,25 @@
@if (_isLoading)
{
<MudStack AlignItems="AlignItems.Center" Class="py-16">
<MudProgressCircular Color="Color.Primary" Indeterminate="true" Size="Size.Large" />
<MudText Typo="Typo.body1" Class="mud-text-secondary mt-2">در حال بارگذاری...</MudText>
</MudStack>
<MudContainer MaxWidth="MaxWidth.Large" Class="py-6">
<LoadingState Message="در حال بارگذاری..." />
</MudContainer>
}
else if (_package == null)
{
<MudStack AlignItems="AlignItems.Center" Class="py-16">
<MudIcon Icon="@Icons.Material.Filled.Error" Size="Size.Large" Color="Color.Error" />
<MudText Typo="Typo.h5" Class="mt-2">پکیج یافت نشد</MudText>
<MudText Typo="Typo.body2" Class="mud-text-secondary">پکیج مورد نظر وجود ندارد یا حذف شده است.</MudText>
<MudButton Variant="Variant.Filled" Color="Color.Primary" Class="mt-4" OnClick="() => Navigation.NavigateTo(RouteConstants.Main.MainPage)">
بازگشت به صفحه اصلی
</MudButton>
</MudStack>
<MudContainer MaxWidth="MaxWidth.Large" Class="py-6">
<EmptyState Icon="@Icons.Material.Filled.Error"
Title="پکیج یافت نشد"
Description="پکیج مورد نظر وجود ندارد یا حذف شده است."
ActionText="بازگشت به صفحه اصلی"
ActionHref="@RouteConstants.Main.MainPage" />
</MudContainer>
}
else
{
<!-- Breadcrumb -->
<MudContainer MaxWidth="MaxWidth.Large" Class="py-4">
<PageHeader Title="جزئیات پکیج" BackHref="@RouteConstants.Package.List" />
<MudBreadcrumbs Items="_breadcrumbItems" />
</MudContainer>
@@ -36,9 +35,9 @@ else
<MudStack Class="mb-4">
<!-- Package Image -->
<MudPaper Class="pa-2 rounded-xl" Style="background: radial-gradient(600px 280px at 120% 0, #daccff 0, transparent 60%), radial-gradient(600px 280px at -10% 100%, #ffe2f2 0, transparent 60%), linear-gradient(180deg, #fff, #fbfaff);">
<MudImage Src="@_package.Image"
<AppImage Path="@_package.Image"
Alt="@_package.Title"
Height="250"
ImgHeight="250"
ObjectFit="ObjectFit.Cover"
ObjectPosition="ObjectPosition.Center"
Style="width:100%"
@@ -228,9 +227,9 @@ else
<MudItem xs="12" md="4">
<MudPaper Elevation="2" Class="pa-4 d-flex flex-column h-100 cursor-pointer"
OnClick="() => NavigateToPackage(relatedPackage.Id)">
<MudImage Src="@relatedPackage.Image"
<AppImage Path="@relatedPackage.Image"
Alt="@relatedPackage.Title"
Height="200"
ImgHeight="200"
ObjectFit="ObjectFit.Cover"
Class="rounded-xl mb-3" />
<MudText Typo="Typo.h6" Class="mb-2">@relatedPackage.Title</MudText>