diff --git a/index.html b/index.html
index e1d58d1..ef3f00f 100644
--- a/index.html
+++ b/index.html
@@ -168,17 +168,9 @@
Last.fm Scrobbling
@@ -339,16 +328,6 @@
-
-
- Album Cover Background
- Use the album cover as a blurred background on album pages
-
-
-
+
+
+ Keyboard Shortcuts
+ View available keyboard shortcuts
+
+
+
Cache
diff --git a/js/app.js b/js/app.js
index 527a44d..e577baf 100644
--- a/js/app.js
+++ b/js/app.js
@@ -568,7 +568,11 @@ document.addEventListener('DOMContentLoaded', async () => {
}
});
- if (!localStorage.getItem('shortcuts-shown')) {
+ document.getElementById('show-shortcuts-btn')?.addEventListener('click', () => {
+ showKeyboardShortcuts();
+ });
+
+ if (!localStorage.getItem('shortcuts-shown') && window.innerWidth > 768) {
setTimeout(() => {
showKeyboardShortcuts();
localStorage.setItem('shortcuts-shown', 'true');
diff --git a/js/downloads.js b/js/downloads.js
index ceb8a8f..c652c33 100644
--- a/js/downloads.js
+++ b/js/downloads.js
@@ -1,5 +1,5 @@
//js/downloads.js
-import { buildTrackFilename, sanitizeForFilename, RATE_LIMIT_ERROR_MESSAGE, getTrackArtists, getTrackTitle, formatTemplate } from './utils.js';
+import { buildTrackFilename, sanitizeForFilename, RATE_LIMIT_ERROR_MESSAGE, getTrackArtists, getTrackTitle, formatTemplate, SVG_CLOSE } from './utils.js';
import { lyricsSettings } from './storage.js';
const downloadTasks = new Map();
@@ -65,10 +65,7 @@ export function addDownloadTask(trackId, track, filename, api) {
Starting...
`;
@@ -132,10 +129,7 @@ export function completeDownloadTask(trackId, success = true, message = null) {
statusEl.textContent = message || '✗ Download failed';
statusEl.style.color = '#ef4444';
cancelBtn.innerHTML = `
-
+ ${SVG_CLOSE}
`;
cancelBtn.onclick = () => removeDownloadTask(trackId);
diff --git a/js/lyrics.js b/js/lyrics.js
index b810f27..f4c297f 100644
--- a/js/lyrics.js
+++ b/js/lyrics.js
@@ -1,5 +1,5 @@
//js/lyrics.js
-import { getTrackTitle, getTrackArtists } from './utils.js';
+import { getTrackTitle, getTrackArtists, SVG_DOWNLOAD, SVG_CLOSE } from './utils.js';
export class LyricsManager {
constructor(api) {
@@ -104,17 +104,10 @@ export function createLyricsPanel() {
Lyrics
diff --git a/js/storage.js b/js/storage.js
index ef58215..0d9b75c 100644
--- a/js/storage.js
+++ b/js/storage.js
@@ -305,9 +305,9 @@ export const nowPlayingSettings = {
getMode() {
try {
- return localStorage.getItem(this.STORAGE_KEY) || 'album';
+ return localStorage.getItem(this.STORAGE_KEY) || 'cover';
} catch (e) {
- return 'album';
+ return 'cover';
}
},
diff --git a/js/ui-interactions.js b/js/ui-interactions.js
index 851286a..5070aa8 100644
--- a/js/ui-interactions.js
+++ b/js/ui-interactions.js
@@ -1,5 +1,5 @@
//js/ui-interactions.js
-import { formatTime, trackDataStore, getTrackTitle, getTrackArtists } from './utils.js';
+import { SVG_CLOSE, formatTime, trackDataStore, getTrackTitle, getTrackArtists } from './utils.js';
export function initializeUIInteractions(player, api) {
const sidebar = document.querySelector('.sidebar');
@@ -78,10 +78,7 @@ export function initializeUIInteractions(player, api) {