Доработана передача списка выбранных треков
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user