Finished enqueue site

This commit is contained in:
2025-11-30 11:52:48 +01:00
parent 2cb06c5154
commit ad7c50a988
66 changed files with 457 additions and 60023 deletions

View 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;
}
}