Доработана передача списка выбранных треков

This commit is contained in:
FrigaT
2026-04-15 16:57:11 +03:00
parent 76c9b11a68
commit 629f14cbb9
6 changed files with 90 additions and 141 deletions

View File

@@ -29,7 +29,7 @@
</MudToggleGroup>
<MudTable Items="@_searchResults"
Virtualize="@true"
Virtualize="true"
Height="400px"
Hover="true"
Breakpoint="Breakpoint.Sm"
@@ -39,7 +39,7 @@
<TrackItem Track="@context" PlaylistShareToken="@ShareToken" />
</MudTd>
<MudTd>
<MudToggleIconButton Toggled="_addingTrackIds.Contains(context.TrackId)"
<MudToggleIconButton Toggled="@ExistingTrackIds.Contains(context.TrackId)"
Icon="@Icons.Material.Filled.AddCircle"
Color="@Color.Primary"
ToggledIcon="@Icons.Material.Filled.RemoveCircle"
@@ -54,13 +54,13 @@
[Parameter] public string ShareToken { get; set; } = string.Empty;
[Parameter] public EventCallback OnTrackAdded { get; set; }
[Parameter] public EventCallback OnTrackRemoved { get; set; }
[Parameter] public HashSet<string> ExistingTrackIds { get; set; } = new();
private string _searchQuery = "";
private bool _isSearching = false;
private bool _isFirstSearch = true;
private TrackSearchType _searchType = TrackSearchType.All;
private List<YandexTrack> _searchResults = new();
private HashSet<string> _addingTrackIds = new();
private async Task SearchTracks()
{
@@ -124,7 +124,7 @@
private async Task ToggleTrack(YandexTrack track)
{
if (_addingTrackIds.Contains(track.TrackId))
if (ExistingTrackIds.Contains(track.TrackId))
{
await RemoveTrack(track);
}
@@ -136,7 +136,7 @@
private async Task RemoveTrack(YandexTrack track)
{
if (!_addingTrackIds.Remove(track.TrackId)) return;
if (!ExistingTrackIds.Remove(track.TrackId)) return;
try
@@ -148,7 +148,7 @@
catch (Exception ex)
{
Snackbar.Add($"Ошибка добавления: {ex.Message}", Severity.Error);
_addingTrackIds.Add(track.TrackId);
ExistingTrackIds.Add(track.TrackId);
}
finally
{
@@ -158,8 +158,8 @@
private async Task AddTrack(YandexTrack track)
{
if (_addingTrackIds.Contains(track.TrackId)) return;
_addingTrackIds.Add(track.TrackId);
if (ExistingTrackIds.Contains(track.TrackId)) return;
ExistingTrackIds.Add(track.TrackId);
try
{
@@ -170,7 +170,7 @@
catch (Exception ex)
{
Snackbar.Add($"Ошибка добавления: {ex.Message}", Severity.Error);
_addingTrackIds.Remove(track.TrackId);
ExistingTrackIds.Remove(track.TrackId);
}
finally
{