fix добавление трека
This commit is contained in:
@@ -37,10 +37,10 @@
|
||||
Breakpoint="Breakpoint.Sm"
|
||||
Loading="@_isSearching">
|
||||
<RowTemplate>
|
||||
<MudTd Style="width: 100%;">
|
||||
<MudTd Class="pa-1" Style="width: 100%;">
|
||||
<TrackItem Track="@context" PlaylistShareToken="@ShareToken" />
|
||||
</MudTd>
|
||||
<MudTd>
|
||||
<MudTd Class="pa-1">
|
||||
<MudToggleIconButton Toggled="@ExistingTrackIds.Contains(context.TrackId)"
|
||||
Icon="@Icons.Material.Filled.AddCircle"
|
||||
Color="@Color.Primary"
|
||||
@@ -145,11 +145,11 @@
|
||||
{
|
||||
await RemoveTrackById(track.TrackId);
|
||||
await OnTrackRemoved.InvokeAsync();
|
||||
Snackbar.Add($"Трек \"{track.Title}\" удален", Severity.Success);
|
||||
Snackbar.Add($"Трек \"{track.Title}\" удален", Severity.Success, c => c.SnackbarVariant = Variant.Outlined);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Snackbar.Add($"Ошибка добавления: {ex.Message}", Severity.Error);
|
||||
Snackbar.Add($"{ex.Message}", Severity.Error);
|
||||
ExistingTrackIds.Add(track.TrackId);
|
||||
}
|
||||
finally
|
||||
@@ -158,6 +158,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
private async Task RemoveTrackById(string trackId)
|
||||
{
|
||||
var request = new UpdateTrackListRequest { TrackIds = new List<string> { trackId } };
|
||||
var response = await Http.PostAsJsonAsync($"/api/sharedplaylist/{ShareToken}/remove-tracks", request);
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
await OnTrackAdded.InvokeAsync(); // уведомляем родителя, что список треков изменился
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await response.Content.ReadFromJsonAsync<ApiResponse<object>>();
|
||||
throw new Exception(error?.Error?.Message ?? "Ошибка удаления трека");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task AddTrack(YandexTrack track)
|
||||
{
|
||||
if (ExistingTrackIds.Contains(track.TrackId)) return;
|
||||
@@ -167,11 +182,11 @@
|
||||
{
|
||||
await AddTrackById(track.TrackId);
|
||||
await OnTrackAdded.InvokeAsync();
|
||||
Snackbar.Add($"Трек \"{track.Title}\" добавлен", Severity.Success);
|
||||
Snackbar.Add($"Трек \"{track.Title}\" добавлен", Severity.Success, c => c.SnackbarVariant = Variant.Outlined);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Snackbar.Add($"Ошибка добавления: {ex.Message}", Severity.Error);
|
||||
Snackbar.Add($"{ex.Message}", Severity.Error);
|
||||
ExistingTrackIds.Remove(track.TrackId);
|
||||
}
|
||||
finally
|
||||
@@ -182,53 +197,16 @@
|
||||
|
||||
private async Task AddTrackById(string trackId)
|
||||
{
|
||||
try
|
||||
var request = new UpdateTrackListRequest { TrackIds = new List<string> { trackId } };
|
||||
var response = await Http.PostAsJsonAsync($"/api/sharedplaylist/{ShareToken}/add-tracks", request);
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var request = new UpdateTrackListRequest { TrackIds = new List<string> { trackId } };
|
||||
var response = await Http.PostAsJsonAsync($"/api/sharedplaylist/{ShareToken}/add-tracks", request);
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
await OnTrackAdded.InvokeAsync(); // уведомляем родителя, что список треков изменился
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await response.Content.ReadFromJsonAsync<ApiResponse<object>>();
|
||||
Snackbar.Add(error?.Error?.Message ?? "Ошибка добавления трека", Severity.Error);
|
||||
}
|
||||
await OnTrackAdded.InvokeAsync(); // уведомляем родителя, что список треков изменился
|
||||
}
|
||||
catch (Exception ex)
|
||||
else
|
||||
{
|
||||
Snackbar.Add($"Ошибка: {ex.Message}", Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task RemoveTrackById(string trackId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var request = new UpdateTrackListRequest { TrackIds = new List<string> { trackId } };
|
||||
var response = await Http.PostAsJsonAsync($"/api/sharedplaylist/{ShareToken}/remove-tracks", request);
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
await OnTrackAdded.InvokeAsync(); // уведомляем родителя, что список треков изменился
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await response.Content.ReadFromJsonAsync<ApiResponse<object>>();
|
||||
Snackbar.Add(error?.Error?.Message ?? "Ошибка удаления трека", Severity.Error);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Snackbar.Add($"Ошибка: {ex.Message}", Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
StateHasChanged();
|
||||
var error = await response.Content.ReadFromJsonAsync<ApiResponse<object>>();
|
||||
throw new Exception(error?.Error?.Message ?? "Ошибка добавления трека");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,12 @@
|
||||
Breakpoint="Breakpoint.Sm"
|
||||
Loading="@_tracksLoading">
|
||||
<RowTemplate>
|
||||
<MudTd Style="width: 100%;">
|
||||
<TrackItem Track="@context" PlaylistShareToken="Token" CanPlay="@_canPlay" />
|
||||
<MudTd Class="pa-1" Style="width: 100%;">
|
||||
<TrackItem Track="@context" PlaylistShareToken="@Token" CanPlay="@_canPlay" />
|
||||
</MudTd>
|
||||
@if (_canRemove)
|
||||
{
|
||||
<MudTd>
|
||||
<MudTd Class="pa-1">
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Delete" Color="Color.Error" OnClick="() => RemoveTrack(context)" />
|
||||
</MudTd>
|
||||
}
|
||||
@@ -70,7 +70,7 @@
|
||||
</MudCardHeader>
|
||||
|
||||
<MudCardContent Class="flex-grow-1 d-flex flex-column" Style="overflow: hidden;">
|
||||
<AddTrackSection ShareToken="Token" OnTrackAdded="LoadTracks" OnTrackRemoved="LoadTracks" ExistingTrackIds="_existingTrackIds" />
|
||||
<AddTrackSection ShareToken="@Token" OnTrackAdded="LoadTracks" OnTrackRemoved="LoadTracks" ExistingTrackIds="_existingTrackIds" />
|
||||
</MudCardContent>
|
||||
</MudCard>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user