diff --git a/packages/gitbook/src/components/PageBody/PageCover.tsx b/packages/gitbook/src/components/PageBody/PageCover.tsx index ecaf4d9439..a9256cb406 100644 --- a/packages/gitbook/src/components/PageBody/PageCover.tsx +++ b/packages/gitbook/src/components/PageBody/PageCover.tsx @@ -43,31 +43,30 @@ export async function PageCover(props: { const getImage = async (resolved: ResolvedContentRef | null, returnNull = false) => { if (!resolved && returnNull) return; - const [attrs, size] = await Promise.all([ - getImageAttributes({ - sizes, - source: resolved - ? { - src: resolved.href, - size: resolved.file?.dimensions ?? null, - } - : { - src: defaultPageCover.src, - size: { - width: defaultPageCover.width, - height: defaultPageCover.height, - }, + // If we don't have a size for the image, we want to calculate it so that we can use srcSet + const size = + resolved?.file?.dimensions ?? + (await context.imageResizer?.getImageSize(resolved?.href || defaultPageCover.src, {})); + const attrs = await getImageAttributes({ + sizes, + source: resolved + ? { + src: resolved.href, + size: size ?? null, + } + : { + src: defaultPageCover.src, + size: { + width: defaultPageCover.width, + height: defaultPageCover.height, }, - quality: 100, - resize: context.imageResizer ?? false, - }), - context.imageResizer - ?.getImageSize(resolved?.href || defaultPageCover.src, {}) - .then((size) => size ?? undefined), - ]); + }, + quality: 100, + resize: context.imageResizer ?? false, + }); return { ...attrs, - size, + size: size ?? undefined, }; }; diff --git a/packages/gitbook/src/components/PageBody/PageCoverImage.tsx b/packages/gitbook/src/components/PageBody/PageCoverImage.tsx index d4f1c2b11a..64fb3b3464 100644 --- a/packages/gitbook/src/components/PageBody/PageCoverImage.tsx +++ b/packages/gitbook/src/components/PageBody/PageCoverImage.tsx @@ -44,6 +44,8 @@ export function PageCoverImage({ imgs, y }: { imgs: Images; y: number }) {