using Microsoft.AspNetCore.Components;

namespace DeepDrftPublic.Client.Controls.AudioPlayerBar;

public partial class PlayerTransportZone : ComponentBase
{
    [Parameter] public bool IsLoaded { get; set; }
    [Parameter] public bool CanPlay { get; set; }
    [Parameter] public bool IsLoading { get; set; }
    [Parameter] public bool IsStreaming { get; set; }
    [Parameter] public double LoadProgress { get; set; }
    [Parameter] public double DisplayTime { get; set; }
    [Parameter] public double? Duration { get; set; }
    [Parameter] public bool Fixed { get; set; } = false;
    [Parameter] public EventCallback TogglePlayPause { get; set; }
    [Parameter] public EventCallback Stop { get; set; }
    [Parameter] public bool HasNext { get; set; }
    [Parameter] public bool HasPrevious { get; set; }
    [Parameter] public EventCallback SkipNext { get; set; }
    [Parameter] public EventCallback SkipPrevious { get; set; }

    /// <summary>Whether to render the Queue toggle button. Gated on a non-empty queue by the bar.</summary>
    [Parameter] public bool ShowQueueButton { get; set; }

    /// <summary>Whether the queue overlay is open. Drives the button's active state.</summary>
    [Parameter] public bool QueueOpen { get; set; }

    /// <summary>Raised when the Queue button is clicked. The bar toggles the overlay.</summary>
    [Parameter] public EventCallback QueueToggle { get; set; }

    [Parameter] public string? Class { get; set; }
}
