Finished enqueue site
This commit is contained in:
66
SpotiParty.Web/Components/Pages/EnqueuePage.razor.cs
Normal file
66
SpotiParty.Web/Components/Pages/EnqueuePage.razor.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using SpotifyAPI.Web;
|
||||
using SpotiParty.Web.Services;
|
||||
|
||||
namespace SpotiParty.Web.Components.Pages;
|
||||
|
||||
public partial class EnqueuePage(AuthorizationHandler authHandler) : ComponentBase {
|
||||
private readonly int _currentYear = DateTime.Now.Year;
|
||||
private SpotifyClient _client = null!;
|
||||
|
||||
private string _searchText = string.Empty;
|
||||
private List<FullTrack> _tracks = new();
|
||||
private bool _isLoading;
|
||||
private FullTrack? _selectedTrack;
|
||||
private bool _isAdding;
|
||||
private bool _success;
|
||||
|
||||
protected override async Task OnInitializedAsync() {
|
||||
await base.OnInitializedAsync();
|
||||
_client = await authHandler.ConfigureClient();
|
||||
}
|
||||
|
||||
private async Task ExecuteSearch() {
|
||||
if (_isLoading) return;
|
||||
if (string.IsNullOrWhiteSpace(_searchText)) return;
|
||||
_isLoading = true;
|
||||
_tracks.Clear();
|
||||
StateHasChanged();
|
||||
|
||||
var request = new SearchRequest(SearchRequest.Types.Track, _searchText);
|
||||
var response = await _client.Search.Item(request);
|
||||
|
||||
var responseTracks = response.Tracks.Items ?? [];
|
||||
foreach (var track in responseTracks) {
|
||||
_tracks.Add(track);
|
||||
}
|
||||
|
||||
_isLoading = false;
|
||||
}
|
||||
|
||||
private void OnTrackClick(FullTrack track) {
|
||||
if (_selectedTrack is not null) return;
|
||||
_selectedTrack = track;
|
||||
}
|
||||
|
||||
private void DialogDismiss() {
|
||||
if (_isAdding) return;
|
||||
_selectedTrack = null;
|
||||
}
|
||||
|
||||
private async Task DialogAccept() {
|
||||
if (_selectedTrack is null || _isAdding) return;
|
||||
_isAdding = true;
|
||||
/*var request = new PlayerAddToQueueRequest(_selectedTrack.Uri);
|
||||
await _client.Player.AddToQueue(request);*/
|
||||
await Task.Delay(3000); //TODO: Simulate adding
|
||||
_isAdding = false;
|
||||
|
||||
_success = true;
|
||||
StateHasChanged();
|
||||
await Task.Delay(2000);
|
||||
_success = false;
|
||||
|
||||
_selectedTrack = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user