Files
SpotiParty/SpotiParty.Web/Components/Components/SpotifyTrack.razor
2025-11-30 11:52:48 +01:00

31 lines
871 B
Plaintext

@using SpotifyAPI.Web
<div class="track" @onclick="HandleClick">
<img src=@Img alt="Cover">
<div class="track-info">
<span class="track-name">@Name</span>
<span class="track-artists">@Artists</span>
</div>
<span class="track-duration">@Duration</span>
</div>
@code {
[Parameter]
public required FullTrack Track { get; set; }
[Parameter]
public EventCallback<FullTrack> OnClick { get; set; }
public string Img => Track.Album.Images.First().Url;
public string Name => Track.Name;
public string Artists => string.Join(", ", Track.Artists.Select(a => a.Name));
public string Duration => TimeSpan.FromMilliseconds(Track.DurationMs).ToString(@"mm\:ss");
private async Task HandleClick() {
if (OnClick.HasDelegate) {
await OnClick.InvokeAsync(Track);
}
}
}