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
        }
    }
}