ini file support and cover art
This commit is contained in:
@@ -18,6 +18,8 @@ const elements = {
|
||||
libraryEntries: document.querySelector("#library-entries"),
|
||||
title: document.querySelector("#now-title"),
|
||||
meta: document.querySelector("#now-meta"),
|
||||
coverImage: document.querySelector("#cover-image"),
|
||||
coverPlaceholder: document.querySelector("#cover-placeholder"),
|
||||
tabs: document.querySelector("#tabs"),
|
||||
tabAdd: document.querySelector("#tab-add"),
|
||||
count: document.querySelector("#track-count"),
|
||||
@@ -335,6 +337,20 @@ function renderPlayer(nextState) {
|
||||
? [current.artist, current.album].filter(Boolean).join(" · ") || current.source
|
||||
: "Voeg een track toe vanuit de bibliotheek";
|
||||
|
||||
const artworkId = current?.artworkId || "";
|
||||
if (elements.coverImage.dataset.artworkId !== artworkId) {
|
||||
elements.coverImage.dataset.artworkId = artworkId;
|
||||
if (artworkId) {
|
||||
elements.coverImage.hidden = false;
|
||||
elements.coverPlaceholder.hidden = true;
|
||||
elements.coverImage.src = `/api/artwork/${encodeURIComponent(artworkId)}`;
|
||||
} else {
|
||||
elements.coverImage.removeAttribute("src");
|
||||
elements.coverImage.hidden = true;
|
||||
elements.coverPlaceholder.hidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
const playing = nextState.state === "playing" || nextState.state === "starting";
|
||||
elements.play.textContent = playing ? "Ⅱ" : "▶";
|
||||
elements.play.setAttribute("aria-label", playing ? "Pauzeren" : "Afspelen");
|
||||
@@ -366,6 +382,16 @@ function renderPlayer(nextState) {
|
||||
elements.source.textContent = nextState.source || "—";
|
||||
}
|
||||
|
||||
elements.coverImage.addEventListener("error", () => {
|
||||
elements.coverImage.hidden = true;
|
||||
elements.coverPlaceholder.hidden = false;
|
||||
});
|
||||
|
||||
elements.coverImage.addEventListener("load", () => {
|
||||
elements.coverImage.hidden = false;
|
||||
elements.coverPlaceholder.hidden = true;
|
||||
});
|
||||
|
||||
function render(nextState) {
|
||||
state = nextState;
|
||||
renderSelectors(nextState);
|
||||
|
||||
Reference in New Issue
Block a user