diff --git a/PlaylistShared.Pwa/Components/SharedPlaylist/AddTrackSection.razor b/PlaylistShared.Pwa/Components/SharedPlaylist/AddTrackSection.razor index b927b06..7a91edc 100644 --- a/PlaylistShared.Pwa/Components/SharedPlaylist/AddTrackSection.razor +++ b/PlaylistShared.Pwa/Components/SharedPlaylist/AddTrackSection.razor @@ -37,10 +37,10 @@ Breakpoint="Breakpoint.Sm" Loading="@_isSearching"> - + - + 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 { 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>(); + 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 { trackId } }; + var response = await Http.PostAsJsonAsync($"/api/sharedplaylist/{ShareToken}/add-tracks", request); + if (response.IsSuccessStatusCode) { - var request = new UpdateTrackListRequest { TrackIds = new List { 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>(); - 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 { 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>(); - Snackbar.Add(error?.Error?.Message ?? "Ошибка удаления трека", Severity.Error); - } - } - catch (Exception ex) - { - Snackbar.Add($"Ошибка: {ex.Message}", Severity.Error); - } - finally - { - StateHasChanged(); + var error = await response.Content.ReadFromJsonAsync>(); + throw new Exception(error?.Error?.Message ?? "Ошибка добавления трека"); } } diff --git a/PlaylistShared.Pwa/Pages/SharedPlaylistView.razor b/PlaylistShared.Pwa/Pages/SharedPlaylistView.razor index f9270a1..3342860 100644 --- a/PlaylistShared.Pwa/Pages/SharedPlaylistView.razor +++ b/PlaylistShared.Pwa/Pages/SharedPlaylistView.razor @@ -45,12 +45,12 @@ Breakpoint="Breakpoint.Sm" Loading="@_tracksLoading"> - - + + @if (_canRemove) { - + } @@ -70,7 +70,7 @@ - + }