Вынесен глобальный плеер

This commit is contained in:
FrigaT
2026-04-14 18:59:00 +03:00
parent 65efb9ff76
commit e0fca7e55e
10 changed files with 379 additions and 191 deletions

View File

@@ -37,9 +37,7 @@
<div style="width: 40px; height: 40px; flex-shrink: 0;">
<TrackCoverWithPlay CoverUrl="@track.CoverUri"
TrackId="@track.TrackId"
Width="40" Height="40"
IsPlaying="@(_currentPlayingTrackId == track.TrackId && _isPlaying)"
OnPlay="PlayTrack" />
Width="40" Height="40"/>
</div>
<div style="flex: 1; min-width: 0;">
<MudText Typo="Typo.body1" Style="font-weight: 500;">@track.Title</MudText>
@@ -67,23 +65,12 @@
@code {
[Parameter] public EventCallback<string> OnAddTrack { get; set; }
[Parameter] public EventCallback<string> OnPlayTrack { get; set; }
[Parameter] public string ShareToken { get; set; } = string.Empty;
[Parameter] public string? CurrentPlayingTrackId { get; set; }
[Parameter] public bool IsPlaying { get; set; }
private string _searchQuery = "";
private List<YandexTrackSearchResult> _searchResults = new();
private bool _isSearching;
private HashSet<string> _addingTrackIds = new();
private string? _currentPlayingTrackId;
private bool _isPlaying;
protected override void OnParametersSet()
{
_currentPlayingTrackId = CurrentPlayingTrackId;
_isPlaying = IsPlaying;
}
private async Task SearchTracks()
{
@@ -133,11 +120,6 @@
}
}
private async Task PlayTrack(string trackId)
{
await OnPlayTrack.InvokeAsync(trackId);
}
private string FormatDuration(long ms)
{
var seconds = ms / 1000;