feat: add referral code support to phone verification form
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 5m9s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 5m9s
This commit is contained in:
@@ -22,7 +22,9 @@
|
|||||||
PhoneNumber="@_phoneNumber"
|
PhoneNumber="@_phoneNumber"
|
||||||
ResendRemaining="_resendRemaining"
|
ResendRemaining="_resendRemaining"
|
||||||
OnChangePhone="ChangePhoneAsync"
|
OnChangePhone="ChangePhoneAsync"
|
||||||
OnResendOtp="ResendOtpAsync" />
|
OnResendOtp="ResendOtpAsync"
|
||||||
|
ReferralCode="@_referralCode"
|
||||||
|
ReferralCodeChanged="OnReferralCodeChanged" />
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -51,7 +53,9 @@ else
|
|||||||
PhoneNumber="@_phoneNumber"
|
PhoneNumber="@_phoneNumber"
|
||||||
ResendRemaining="_resendRemaining"
|
ResendRemaining="_resendRemaining"
|
||||||
OnChangePhone="ChangePhoneAsync"
|
OnChangePhone="ChangePhoneAsync"
|
||||||
OnResendOtp="ResendOtpAsync" />
|
OnResendOtp="ResendOtpAsync"
|
||||||
|
ReferralCode="@_referralCode"
|
||||||
|
ReferralCodeChanged="OnReferralCodeChanged" />
|
||||||
|
|
||||||
<MudStack Class="mt-4" Spacing="2">
|
<MudStack Class="mt-4" Spacing="2">
|
||||||
@if (_currentStep == AuthStep.Phone)
|
@if (_currentStep == AuthStep.Phone)
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ public partial class AuthDialog : IDisposable
|
|||||||
private string? _captchaCode;
|
private string? _captchaCode;
|
||||||
private string? _captchaInput;
|
private string? _captchaInput;
|
||||||
|
|
||||||
|
// Referral code field
|
||||||
|
private string? _referralCode;
|
||||||
|
|
||||||
[Inject] private ILocalStorageService LocalStorage { get; set; } = default!;
|
[Inject] private ILocalStorageService LocalStorage { get; set; } = default!;
|
||||||
[Inject] private UserContract.UserContractClient UserClient { get; set; } = default!;
|
[Inject] private UserContract.UserContractClient UserClient { get; set; } = default!;
|
||||||
|
|
||||||
@@ -66,9 +69,20 @@ public partial class AuthDialog : IDisposable
|
|||||||
{
|
{
|
||||||
_phoneRequest.Mobile = storedPhone;
|
_phoneRequest.Mobile = storedPhone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_referralCode = await LocalStorage.GetItemAsync<string>("referral:code");
|
||||||
// await LocalStorage.RemoveItemAsync(TokenStorageKey);
|
// await LocalStorage.RemoveItemAsync(TokenStorageKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task OnReferralCodeChanged(string? value)
|
||||||
|
{
|
||||||
|
_referralCode = value;
|
||||||
|
if (!string.IsNullOrWhiteSpace(value))
|
||||||
|
await LocalStorage.SetItemAsync("referral:code", value);
|
||||||
|
else
|
||||||
|
await LocalStorage.RemoveItemAsync("referral:code");
|
||||||
|
}
|
||||||
|
|
||||||
private void GenerateCaptcha()
|
private void GenerateCaptcha()
|
||||||
{
|
{
|
||||||
_captchaCode = Guid.NewGuid().ToString("N")[..6].ToUpperInvariant();
|
_captchaCode = Guid.NewGuid().ToString("N")[..6].ToUpperInvariant();
|
||||||
@@ -182,9 +196,12 @@ public partial class AuthDialog : IDisposable
|
|||||||
_verifyRequest.Mobile = _phoneNumber;
|
_verifyRequest.Mobile = _phoneNumber;
|
||||||
|
|
||||||
var storedReferralCode = await LocalStorage.GetItemAsync<string>("referral:code");
|
var storedReferralCode = await LocalStorage.GetItemAsync<string>("referral:code");
|
||||||
if (!string.IsNullOrWhiteSpace(storedReferralCode))
|
var effectiveReferralCode = !string.IsNullOrWhiteSpace(_referralCode)
|
||||||
|
? _referralCode
|
||||||
|
: storedReferralCode;
|
||||||
|
if (!string.IsNullOrWhiteSpace(effectiveReferralCode))
|
||||||
{
|
{
|
||||||
_verifyRequest.ParentReferralCode = storedReferralCode;
|
_verifyRequest.ParentReferralCode = effectiveReferralCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
var validationResult = true; // _verifyRequestValidator.Validate(_verifyRequest);
|
var validationResult = true; // _verifyRequestValidator.Validate(_verifyRequest);
|
||||||
|
|||||||
@@ -36,6 +36,14 @@
|
|||||||
Color="Color.Primary"
|
Color="Color.Primary"
|
||||||
Class="mb-2" />
|
Class="mb-2" />
|
||||||
|
|
||||||
|
<MudTextField Value="ReferralCode"
|
||||||
|
ValueChanged="@((string? v) => ReferralCodeChanged.InvokeAsync(v))"
|
||||||
|
Label="کد معرف (اختیاری)"
|
||||||
|
Variant="Variant.Outlined"
|
||||||
|
Immediate="true"
|
||||||
|
Placeholder="کد معرف را وارد کنید"
|
||||||
|
Class="mb-3" />
|
||||||
|
|
||||||
@if (!string.IsNullOrWhiteSpace(ErrorMessage))
|
@if (!string.IsNullOrWhiteSpace(ErrorMessage))
|
||||||
{
|
{
|
||||||
<MudAlert Severity="Severity.Error" Dense="true" Elevation="0"
|
<MudAlert Severity="Severity.Error" Dense="true" Elevation="0"
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ public partial class PhoneVerifyForm
|
|||||||
[Parameter] public string? PhoneNumber { get; set; }
|
[Parameter] public string? PhoneNumber { get; set; }
|
||||||
[Parameter] public int ResendRemaining { get; set; }
|
[Parameter] public int ResendRemaining { get; set; }
|
||||||
|
|
||||||
|
// ── Referral ──
|
||||||
|
[Parameter] public string? ReferralCode { get; set; }
|
||||||
|
[Parameter] public EventCallback<string?> ReferralCodeChanged { get; set; }
|
||||||
|
|
||||||
// ── Verify actions ──
|
// ── Verify actions ──
|
||||||
[Parameter] public EventCallback OnChangePhone { get; set; }
|
[Parameter] public EventCallback OnChangePhone { get; set; }
|
||||||
[Parameter] public EventCallback OnResendOtp { get; set; }
|
[Parameter] public EventCallback OnResendOtp { get; set; }
|
||||||
|
|||||||
Reference in New Issue
Block a user