From 9d12693fec8305a0ac410855e51d86ce5ff38a6a Mon Sep 17 00:00:00 2001 From: EduardPrigoana <182119792+EduardPrigoana@users.noreply.github.com> Date: Sun, 1 Feb 2026 12:48:19 +0000 Subject: [PATCH] style: auto-fix linting issues --- index.html | 8 ++++-- js/events.js | 73 +++++++++++++++++++++++++++++++++++----------------- js/player.js | 6 ++--- js/ui.js | 58 ++++++++++++++++++++++++++--------------- 4 files changed, 96 insertions(+), 49 deletions(-) diff --git a/index.html b/index.html index 8419a41..7bfcc57 100644 --- a/index.html +++ b/index.html @@ -1362,7 +1362,7 @@
Quality: ${quality} ${bitrate ? `(${bitrate})` : ''}
Credits
${c.type}: ${c.name}
`).join('')} + ${item.credits.map((c) => `${c.type}: ${c.name}
`).join('')}Composers: ${item.composers.map(c => c.name).join(', ')}
- ` : ''} + ${ + item.composers && item.composers.length > 0 + ? ` +Composers: ${item.composers.map((c) => c.name).join(', ')}
+ ` + : '' + } - ${item.lyrics?.text ? ` + ${ + item.lyrics?.text + ? `Has Lyrics
Track ID: ${item.id}
` : ''} ${item.album?.id ? `Album ID: ${item.album.id}
` : ''} @@ -1161,11 +1187,12 @@ export async function handleTrackAction( `; } - + // Create and show modal const modal = document.createElement('div'); modal.className = 'modal-overlay'; - modal.style.cssText = 'position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; z-index: 10000;'; + modal.style.cssText = + 'position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; z-index: 10000;'; modal.innerHTML = infoHTML; modal.onclick = (e) => { if (e.target === modal) modal.remove(); @@ -1174,13 +1201,13 @@ export async function handleTrackAction( } else if (action === 'open-original-url') { // Open the original source URL for the track let url = null; - + if (item.isTracker && item.trackerInfo && item.trackerInfo.sourceUrl) { url = item.trackerInfo.sourceUrl; } else if (item.remoteUrl) { url = item.remoteUrl; } - + if (url) { window.open(url, '_blank'); } else { diff --git a/js/player.js b/js/player.js index 805d7bb..9618bf1 100644 --- a/js/player.js +++ b/js/player.js @@ -356,7 +356,7 @@ export class Player { this.applyReplayGain(); this.audio.src = streamUrl; - + // Wait for audio to be ready before playing (prevents restart issues with blob URLs) if (isTracker) { await new Promise((resolve, reject) => { @@ -372,7 +372,7 @@ export class Player { }; this.audio.addEventListener('canplay', onCanPlay); this.audio.addEventListener('error', onError); - + // Timeout after 10 seconds setTimeout(() => { this.audio.removeEventListener('canplay', onCanPlay); @@ -381,7 +381,7 @@ export class Player { }, 10000); }); } - + if (startTime > 0) { this.audio.currentTime = startTime; } diff --git a/js/ui.js b/js/ui.js index e15f732..f3eeeec 100644 --- a/js/ui.js +++ b/js/ui.js @@ -23,7 +23,15 @@ import { getVibrantColorFromImage } from './vibrant-color.js'; import { syncManager } from './accounts/pocketbase.js'; import { Visualizer } from './visualizer.js'; import { navigate } from './router.js'; -import { renderUnreleasedPage as renderUnreleasedTrackerPage, renderTrackerArtistPage as renderTrackerArtistContent, renderTrackerProjectPage as renderTrackerProjectContent, renderTrackerTrackPage as renderTrackerTrackContent, findTrackerArtistByName, getArtistUnreleasedProjects, createProjectCardHTML } from './tracker.js'; +import { + renderUnreleasedPage as renderUnreleasedTrackerPage, + renderTrackerArtistPage as renderTrackerArtistContent, + renderTrackerProjectPage as renderTrackerProjectContent, + renderTrackerTrackPage as renderTrackerTrackContent, + findTrackerArtistByName, + getArtistUnreleasedProjects, + createProjectCardHTML, +} from './tracker.js'; export class UIRenderer { constructor(api, player) { @@ -120,7 +128,7 @@ export class UIRenderer { this.updateLikeState(likeBtn.parentElement, 'track', track.id); } } - + // For tracker tracks: show add playlist, hide lyrics // For normal tracks: hide add playlist, show lyrics (unless local) if (addPlaylistBtn) { @@ -2322,42 +2330,44 @@ export class UIRenderer { // Initially hide the unreleased section unreleasedSection.style.display = 'none'; loadUnreleasedSection.style.display = 'none'; - + // Check if artist has unreleased projects const trackerArtist = findTrackerArtistByName(artist.name); if (trackerArtist) { // Show the load button section loadUnreleasedSection.style.display = 'block'; - + // Add click handler to load and display unreleased projects loadUnreleasedBtn.onclick = async () => { loadUnreleasedBtn.disabled = true; loadUnreleasedBtn.textContent = 'Loading...'; - + try { const unreleasedData = await getArtistUnreleasedProjects(artist.name); if (unreleasedData && unreleasedData.eras.length > 0) { const { artist: trackerArtistData, sheetId, eras } = unreleasedData; - - unreleasedContainer.innerHTML = eras.map(e => { - let trackCount = 0; - if (e.data) { - Object.values(e.data).forEach((songs) => { - if (songs && songs.length) trackCount += songs.length; - }); - } - return createProjectCardHTML(e, trackerArtistData, sheetId, trackCount); - }).join(''); - + + unreleasedContainer.innerHTML = eras + .map((e) => { + let trackCount = 0; + if (e.data) { + Object.values(e.data).forEach((songs) => { + if (songs && songs.length) trackCount += songs.length; + }); + } + return createProjectCardHTML(e, trackerArtistData, sheetId, trackCount); + }) + .join(''); + unreleasedSection.style.display = 'block'; loadUnreleasedBtn.style.display = 'none'; - + // Add click handlers unreleasedContainer.querySelectorAll('.card').forEach((card) => { const eraName = decodeURIComponent(card.dataset.trackerProjectId); - const era = eras.find(e => e.name === eraName); + const era = eras.find((e) => e.name === eraName); if (!era) return; - + card.onclick = (e) => { if (e.target.closest('.card-play-btn')) { e.stopPropagation(); @@ -2366,13 +2376,19 @@ export class UIRenderer { Object.values(era.data).forEach((songs) => { if (songs && songs.length) { songs.forEach((song, index) => { - const track = createTrackFromSong(song, era, trackerArtistData.name, eraTracks.length, sheetId); + const track = createTrackFromSong( + song, + era, + trackerArtistData.name, + eraTracks.length, + sheetId + ); eraTracks.push(track); }); } }); } - const availableTracks = eraTracks.filter(t => !t.unavailable); + const availableTracks = eraTracks.filter((t) => !t.unavailable); if (availableTracks.length > 0) { globalPlayer.setQueue(availableTracks, 0); globalPlayer.playTrackFromQueue();