Add OtpDialogService for mobile-friendly OTP authentication dialog

This commit is contained in:
masoodafar-web
2025-11-17 00:17:23 +03:30
parent 772ed3523e
commit a0c1452a84

View File

@@ -0,0 +1,37 @@
using FrontOffice.Main.Shared;
using MudBlazor;
namespace FrontOffice.Main.Utilities;
public class OtpDialogService
{
private readonly IDialogService _dialogService;
private readonly IDeviceDetector _deviceDetector;
private readonly DialogOptions _normalWidth = new() { MaxWidth = MaxWidth.ExtraSmall, FullWidth = true };
public OtpDialogService(IDialogService dialogService, IDeviceDetector deviceDetector)
{
ArgumentNullException.ThrowIfNull(dialogService);
ArgumentNullException.ThrowIfNull(deviceDetector);
_dialogService = dialogService!;
_deviceDetector = deviceDetector!;
}
public async Task ShowAuthDialogAsync()
{
// Pick dialog size based on device type
var options = _deviceDetector.IsMobile()
? new DialogOptions() { FullScreen = true}
: _normalWidth;
var dialog = await _dialogService.ShowAsync<SimpleOtpDialog>("تأیید قرارداد", options);
var result = await dialog.Result;
if (!result.Canceled)
{
// User logged in successfully
// You can add additional logic here if needed
}
}
}