Migrate desktop AudioPlayerBar to MudBlazor theme surface
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace DeepDrftPublic.Client.Controls.AudioPlayerBar;
|
||||
|
||||
/// <summary>
|
||||
/// Centre zone of the player: seek slider over the spectrum visualizer.
|
||||
/// Owns the pointer-gesture seek logic (drag-to-seek) in one place so it is no
|
||||
/// longer duplicated inline between the desktop and mobile branches of the parent.
|
||||
/// </summary>
|
||||
public partial class PlayerSeekZone : ComponentBase
|
||||
{
|
||||
private double _seekPosition;
|
||||
|
||||
[Parameter] public double DisplayTime { get; set; }
|
||||
[Parameter] public double? Duration { get; set; }
|
||||
[Parameter] public bool CanSeek { get; set; }
|
||||
[Parameter] public EventCallback OnSeekStart { get; set; }
|
||||
[Parameter] public EventCallback<double> OnSeekEnd { get; set; }
|
||||
[Parameter] public EventCallback<double> OnSeekChange { get; set; }
|
||||
[Parameter] public string? Class { get; set; }
|
||||
|
||||
private async Task HandlePointerDown()
|
||||
{
|
||||
_seekPosition = DisplayTime;
|
||||
await OnSeekStart.InvokeAsync();
|
||||
}
|
||||
|
||||
private async Task HandlePointerUp()
|
||||
{
|
||||
await OnSeekEnd.InvokeAsync(_seekPosition);
|
||||
}
|
||||
|
||||
private async Task HandlePointerLeave()
|
||||
{
|
||||
await OnSeekEnd.InvokeAsync(_seekPosition);
|
||||
}
|
||||
|
||||
private async Task HandleValueChanged(double value)
|
||||
{
|
||||
_seekPosition = value;
|
||||
await OnSeekChange.InvokeAsync(value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user