diff --git a/app/card-images.js b/app/card-images.js index 4438d98..3ce6c6e 100644 --- a/app/card-images.js +++ b/app/card-images.js @@ -106,6 +106,9 @@ fit: "inside", quality: 82 }; + const defaultDeckWarmupOptions = { + includeThumbnails: true + }; const standardMajorCardNames = [ "Fool", "Magus", @@ -1202,7 +1205,10 @@ } function scheduleDeckImagePreload(deckId, options = {}) { - return deferPreload(() => preloadDeckImages(deckId, options)); + return deferPreload(() => preloadDeckImages(deckId, { + ...defaultDeckWarmupOptions, + ...options + })); } function resolveDisplayNameWithDeck(deckId, cardName, trumpNumber) { @@ -1289,7 +1295,7 @@ function setActiveDeck(deckId) { activeDeckId = normalizeDeckId(deckId); getDeckManifest(activeDeckId); - const preloadUrls = buildDeckImagePreloadUrls(activeDeckId); + const preloadUrls = buildDeckImagePreloadUrls(activeDeckId, defaultDeckWarmupOptions); const totalCount = preloadUrls.length; const isWarmed = deckPreloadStatus.warmedDeckIds.includes(activeDeckId); setDeckPreloadStatus({ diff --git a/app/ui-tarot-frame.js b/app/ui-tarot-frame.js index e5fcaa1..4a2314c 100644 --- a/app/ui-tarot-frame.js +++ b/app/ui-tarot-frame.js @@ -4213,11 +4213,12 @@ const imageSrc = resolveCardThumbnail(card); if (showImage && imageSrc) { + const imageCached = tarotCardImages.isImageLoaded?.(imageSrc) === true; const image = document.createElement("img"); image.className = "tarot-frame-card-image"; image.src = imageSrc; image.alt = getDisplayCardName(card); - image.loading = "lazy"; + image.loading = imageCached ? "eager" : "lazy"; image.decoding = "async"; image.draggable = false; button.appendChild(image);