@paroicms/server
Version:
The ParoiCMS server
31 lines • 1.43 kB
JavaScript
import { getHandleOfField } from "../common/media-handles.helpers.js";
import { getFeaturedImageOf } from "../rendered-site/helpers/medias.helpers.js";
export async function loadDefaultImage(renderingContext, options) {
const { fieldTypes, nodeId, language } = options;
const featuredImage = await getFeaturedImageOf(renderingContext, {
nodeId,
});
return featuredImage ?? (await getFirstImage(renderingContext, { nodeId, fieldTypes, language }));
}
async function getFirstImage(renderingContext, { nodeId, fieldTypes, language, }) {
const { siteContext, withAttachedData } = renderingContext;
const selectedFields = [];
for (const f of fieldTypes ?? []) {
const { storedAs, withGallery, useAsDefaultImage } = f;
if ((storedAs !== "mediaHandle" && !withGallery) || useAsDefaultImage === undefined) {
continue;
}
selectedFields.push({ f, useAsDefaultImage });
}
const orderedFieldTypes = selectedFields.sort((a, b) => a.useAsDefaultImage - b.useAsDefaultImage);
for (const item of orderedFieldTypes) {
const handle = getHandleOfField(siteContext, { nodeId, fieldType: item.f, language });
const firstImage = await siteContext.mediaStorage.getFirstImage({
handle,
withAttachedData,
});
if (firstImage)
return firstImage;
}
}
//# sourceMappingURL=load-default-image.js.map