Проведен аудит. Добавлено переключение треков
This commit is contained in:
@@ -1,6 +1,17 @@
|
||||
@page "/shared/{token}"
|
||||
<PageTitle>@_playlist?.Title - Playlist Share</PageTitle>
|
||||
|
||||
<HeadContent>
|
||||
<meta property="og:title" content="@(_playlist?.Title ?? "Поделиться плейлистом")" />
|
||||
<meta property="og:description" content="@($"Слушайте плейлист «{_playlist?.Title}» на Playlist Share")" />
|
||||
@if (!string.IsNullOrEmpty(_playlist?.CoverUrl))
|
||||
{
|
||||
<meta property="og:image" content="@_playlist.CoverUrl" />
|
||||
}
|
||||
<meta property="og:url" content="@Navigation.Uri" />
|
||||
<meta property="og:type" content="music.playlist" />
|
||||
</HeadContent>
|
||||
|
||||
@using PlaylistShared.Pwa.Components.Common
|
||||
@using PlaylistShared.Pwa.Components.Global
|
||||
@using PlaylistShared.Pwa.Components.SharedPlaylist
|
||||
@@ -245,7 +256,8 @@
|
||||
Style="min-height: 0;">
|
||||
<RowTemplate>
|
||||
<MudTd Class="py-1 px-0" Style="width: 100%;">
|
||||
<TrackItem Track="@context" PlaylistShareToken="@Token" CanPlay="@_canPlay" />
|
||||
<TrackItem Track="@context" PlaylistShareToken="@Token" CanPlay="@_canPlay"
|
||||
AddedByName="@(_trackAdditions.TryGetValue(context.TrackId, out var n) ? n : null)" />
|
||||
</MudTd>
|
||||
@if (_canRemove)
|
||||
{
|
||||
@@ -444,6 +456,10 @@
|
||||
/// </summary>
|
||||
private List<YandexTrack> _tracks = new();
|
||||
/// <summary>
|
||||
/// Словарь trackId → имя пользователя, добавившего трек.
|
||||
/// </summary>
|
||||
private Dictionary<string, string?> _trackAdditions = new();
|
||||
/// <summary>
|
||||
/// Продолжительность плейлиста.
|
||||
/// </summary>
|
||||
long _playlistDurationMs;
|
||||
@@ -621,6 +637,15 @@
|
||||
_existingTrackIds = _tracks.Select(t => t.TrackId).ToHashSet();
|
||||
_playlistDurationMs = _tracks.Sum(t => t.DurationMs);
|
||||
_playlistTrackCount = _tracks.Count();
|
||||
AudioPlayerService.SetQueue(_tracks, shareToken: Token);
|
||||
|
||||
try
|
||||
{
|
||||
var additionsResp = await Http.GetFromJsonAsync<ApiResponse<Dictionary<string, string?>>>($"/api/sharedplaylist/{Token}/additions");
|
||||
if (additionsResp?.Success == true && additionsResp.Data != null)
|
||||
_trackAdditions = additionsResp.Data;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user