diff --git a/src/features/background/api/backgroundLoader.js b/src/features/background/api/backgroundLoader.js
index f95e7747..09946f25 100644
--- a/src/features/background/api/backgroundLoader.js
+++ b/src/features/background/api/backgroundLoader.js
@@ -326,6 +326,15 @@ function getPhotoPackBackground(isOffline) {
url: selected.url.default || selected.url,
source: selected.source,
pack_id: selected.pack_id,
+ pack_name: selected.pack_name || null,
+ ...(selected.colour && { colour: selected.colour }),
+ ...(selected.camera && { camera: selected.camera }),
+ ...(selected.category && { category: selected.category }),
+ ...(selected.latitude &&
+ selected.longitude && {
+ latitude: selected.latitude,
+ longitude: selected.longitude,
+ }),
...(selected.photographer_page && { photographerURL: selected.photographer_page }),
...(selected.photo_page && { photoURL: selected.photo_page }),
},
@@ -381,6 +390,15 @@ async function prefetchPhotoPackImages(queueManager, pool, currentPhoto, current
url: photo.url.default || photo.url,
source: photo.source,
pack_id: photo.pack_id,
+ pack_name: photo.pack_name || null,
+ ...(photo.colour && { colour: photo.colour }),
+ ...(photo.camera && { camera: photo.camera }),
+ ...(photo.category && { category: photo.category }),
+ ...(photo.latitude &&
+ photo.longitude && {
+ latitude: photo.latitude,
+ longitude: photo.longitude,
+ }),
...(photo.photographer_page && { photographerURL: photo.photographer_page }),
...(photo.photo_page && { photoURL: photo.photo_page }),
},
diff --git a/src/features/background/api/photoPackAPI.js b/src/features/background/api/photoPackAPI.js
index 250b668b..1f79696b 100644
--- a/src/features/background/api/photoPackAPI.js
+++ b/src/features/background/api/photoPackAPI.js
@@ -311,7 +311,9 @@ export function buildPhotoPool() {
enabledPacksValue: enabledPacks[packId],
api_enabled: pack.api_enabled,
api_ready: apiPacksReady.includes(pack.id),
- cached_photos: pack.api_enabled ? apiPackCache[pack.id]?.photos?.length || 0 : pack.photos?.length || 0,
+ cached_photos: pack.api_enabled
+ ? apiPackCache[pack.id]?.photos?.length || 0
+ : pack.photos?.length || 0,
});
if (enabledPacks[packId] === false) {
@@ -323,23 +325,30 @@ export function buildPhotoPool() {
if (apiPacksReady.includes(pack.id)) {
const cached = apiPackCache[pack.id];
if (cached && cached.photos.length > 0) {
- console.log(`[Build Pool] Adding ${cached.photos.length} API photos from ${pack.display_name || pack.name}`);
+ console.log(
+ `[Build Pool] Adding ${cached.photos.length} API photos from ${pack.display_name || pack.name}`,
+ );
cached.photos.forEach((photo) => {
pool.push({
...photo,
source: `api:${pack.api_provider}`,
pack_id: pack.id,
+ pack_name: pack.display_name || pack.name,
attribution_config: pack.attribution || null,
});
});
} else {
- console.log(`[Build Pool] API pack ${pack.display_name || pack.name} has no cached photos`);
+ console.log(
+ `[Build Pool] API pack ${pack.display_name || pack.name} has no cached photos`,
+ );
}
} else {
console.log(`[Build Pool] API pack ${pack.display_name || pack.name} is not ready yet`);
}
} else {
- console.log(`[Build Pool] Adding ${pack.photos.length} static photos from ${pack.display_name || pack.name}`);
+ console.log(
+ `[Build Pool] Adding ${pack.photos.length} static photos from ${pack.display_name || pack.name}`,
+ );
pack.photos.forEach((photo) => {
pool.push({
photographer: photo.photographer,
@@ -348,6 +357,7 @@ export function buildPhotoPool() {
blur_hash: photo.blur_hash,
source: 'static',
pack_id: pack.id,
+ pack_name: pack.display_name || pack.name,
attribution_config: pack.attribution || null,
});
});
diff --git a/src/features/background/components/PhotoInformation.jsx b/src/features/background/components/PhotoInformation.jsx
index daae6a30..1ed355c4 100644
--- a/src/features/background/components/PhotoInformation.jsx
+++ b/src/features/background/components/PhotoInformation.jsx
@@ -52,7 +52,8 @@ const formatText = (text) => {
const downloadImage = async (info) => {
const link = document.createElement('a');
link.href = await toDataURL(getProxiedImageUrl(info.url));
- const locationText = typeof info.location === 'string' ? info.location : info.location?.name || 'unknown';
+ const locationText =
+ typeof info.location === 'string' ? info.location : info.location?.name || 'unknown';
link.download = `mue-${formatText(info.credit)}-${formatText(locationText)}.jpg`;
document.body.appendChild(link);
link.click();
@@ -96,7 +97,17 @@ function ColorSwatch({ hex }) {
/**
* MetadataGrid - 2-column grid of photo metadata
*/
-function MetadataGrid({ location, camera, width, height, colour, category, packId, packName, onPackClick }) {
+function MetadataGrid({
+ location,
+ camera,
+ width,
+ height,
+ colour,
+ category,
+ packId,
+ packName,
+ onPackClick,
+}) {
const t = useT();
// Get pack display name from marketplace data
@@ -250,7 +261,14 @@ function UnsplashStats({ views, downloads, likes }) {
/**
* ActionButtons - Photo action buttons (share, favorite, download, exclude)
*/
-function ActionButtons({ info, onShare, onExclude, onDownload, favouriteTooltipText, setFavouriteTooltipText }) {
+function ActionButtons({
+ info,
+ onShare,
+ onExclude,
+ onDownload,
+ favouriteTooltipText,
+ setFavouriteTooltipText,
+}) {
const t = useT();
return (
@@ -382,7 +400,6 @@ function PhotoInformation({ info, url, api }) {
);
}
-
const widgetStyle = localStorage.getItem('widgetStyle');
return (
@@ -428,11 +445,7 @@ function PhotoInformation({ info, url, api }) {
{info.views && info.downloads !== null && (
-