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
@@ -25,10 +25,9 @@ public partial class AuthDialog : IDisposable
public AuthStep _currentStep = AuthStep.Phone;
private readonly CreateNewOtpTokenRequest _phoneRequest = new();
private MudForm? _phoneForm;
private PhoneVerifyForm? _phoneVerifyForm;
private readonly VerifyOtpTokenRequest _verifyRequest = new();
private MudForm? _verifyForm;
private bool _isBusy;
private string? _phoneNumber;
@@ -79,11 +78,12 @@ public partial class AuthDialog : IDisposable
public async Task SendOtpAsync()
{
_errorMessage = null;
if (_phoneForm is null)
var phoneForm = _phoneVerifyForm?.GetPhoneForm();
if (phoneForm is null)
return;
await _phoneForm.Validate();
if (!_phoneForm.IsValid)
await phoneForm.Validate();
if (!phoneForm.IsValid)
return;
// if (EnableCaptcha)
@@ -154,11 +154,12 @@ public partial class AuthDialog : IDisposable
_errorMessage = null;
_infoMessage = null;
if (_verifyForm is null)
var verifyForm = _phoneVerifyForm?.GetVerifyForm();
if (verifyForm is null)
return false;
await _verifyForm.Validate();
if (!_verifyForm.IsValid)
await verifyForm.Validate();
if (!verifyForm.IsValid)
return false;
if (IsVerificationLocked)
@@ -236,6 +237,10 @@ public partial class AuthDialog : IDisposable
return true;
}
// اگه سرور RemainingAttempts برگردونده، از اون استفاده کن
if (response.RemainingAttempts > 0)
_attemptsLeft = response.RemainingAttempts;
RegisterFailedAttempt(string.IsNullOrWhiteSpace(response.Message) ? "کد نادرست است." : response.Message);
}
catch (RpcException rpcEx)