🐛 fix: library liked track card link (grid plays like list); my playlists grid layout
This commit is contained in:
parent
5be3d39b1b
commit
8cf7010e7f
3 changed files with 33 additions and 1 deletions
28
js/events.js
28
js/events.js
|
|
@ -2249,6 +2249,34 @@ export function initializeTrackInteractions(player, api, mainContent, contextMen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const libraryTracksContainer = card.closest('#library-tracks-container');
|
||||||
|
if (libraryTracksContainer && card.dataset.trackId) {
|
||||||
|
if (
|
||||||
|
e.target.closest('.like-btn') ||
|
||||||
|
e.target.closest('.card-play-btn') ||
|
||||||
|
e.target.closest('.card-menu-btn')
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
e.preventDefault();
|
||||||
|
const clickedTrackId = card.dataset.trackId;
|
||||||
|
const clickedTrack = trackDataStore.get(card);
|
||||||
|
if (!clickedTrack) return;
|
||||||
|
const allTrackElements = Array.from(
|
||||||
|
libraryTracksContainer.querySelectorAll('.card[data-track-id]')
|
||||||
|
);
|
||||||
|
const trackList = allTrackElements.map((el) => trackDataStore.get(el)).filter(Boolean);
|
||||||
|
if (trackList.length === 0) return;
|
||||||
|
const startIndex = trackList.findIndex((t) => t.id == clickedTrackId);
|
||||||
|
player.setQueue(trackList, startIndex);
|
||||||
|
if (ui.currentPage === 'artist' && ui.currentArtistId) {
|
||||||
|
player.setArtistPopularTracksContext(ui.currentArtistId, trackList, trackList.length, true);
|
||||||
|
}
|
||||||
|
document.getElementById('shuffle-btn').classList.remove('active');
|
||||||
|
player.playTrackFromQueue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const href = card.dataset.href;
|
const href = card.dataset.href;
|
||||||
if (href) {
|
if (href) {
|
||||||
// Allow native links inside card to work if any exist
|
// Allow native links inside card to work if any exist
|
||||||
|
|
|
||||||
2
js/ui.js
2
js/ui.js
|
|
@ -1959,7 +1959,7 @@ export class UIRenderer {
|
||||||
|
|
||||||
if (visiblePlaylists.length) {
|
if (visiblePlaylists.length) {
|
||||||
myPlaylistsContainer.insertAdjacentHTML(
|
myPlaylistsContainer.insertAdjacentHTML(
|
||||||
'afterbegin',
|
'beforeend',
|
||||||
visiblePlaylists.map((p) => this.createUserPlaylistCardHTML(p)).join('')
|
visiblePlaylists.map((p) => this.createUserPlaylistCardHTML(p)).join('')
|
||||||
);
|
);
|
||||||
visiblePlaylists.forEach((playlist) => {
|
visiblePlaylists.forEach((playlist) => {
|
||||||
|
|
|
||||||
|
|
@ -6047,6 +6047,10 @@ img[src=''] {
|
||||||
margin-bottom: var(--spacing-lg);
|
margin-bottom: var(--spacing-lg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#page-library #my-playlists-container .library-create-dashed-card {
|
||||||
|
order: 1;
|
||||||
|
}
|
||||||
|
|
||||||
#page-library .library-create-dashed-card {
|
#page-library .library-create-dashed-card {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue