diff --git a/src/app/api.ts b/src/app/api.ts
index 1a5a2d90..0e873884 100644
--- a/src/app/api.ts
+++ b/src/app/api.ts
@@ -36,8 +36,8 @@ export const formatPhotoForApi = (photo: Photo): PublicApiPhoto => ({
...photo.tags.length > 0 && { tags: photo.tags },
takenAtNaive: formatDateFromPostgresString(photo.takenAtNaive),
src: {
- small: getNextImageUrlForRequest(photo.url, 200),
- medium: getNextImageUrlForRequest(photo.url, 640),
- large: getNextImageUrlForRequest(photo.url, 1200),
+ small: getNextImageUrlForRequest({ imageUrl: photo.url, size: 200 }),
+ medium: getNextImageUrlForRequest({ imageUrl: photo.url, size: 640 }),
+ large: getNextImageUrlForRequest({ imageUrl: photo.url, size: 1200 }),
},
});
diff --git a/src/image-response/components/ImagePhotoGrid.tsx b/src/image-response/components/ImagePhotoGrid.tsx
index 1d2d1c0e..e7958fce 100644
--- a/src/image-response/components/ImagePhotoGrid.tsx
+++ b/src/image-response/components/ImagePhotoGrid.tsx
@@ -69,13 +69,11 @@ export default function ImagePhotoGrid({
}}
>
export const isNextImageReadyBasedOnPhotos = async (
photos: Photo[],
): Promise =>
- photos.length > 0 && fetch(getNextImageUrlForRequest(
- photos[0].url,
- 640,
- undefined,
- undefined,
- IS_PREVIEW,
- ))
+ photos.length > 0 && fetch(getNextImageUrlForRequest({
+ imageUrl: photos[0].url,
+ size: 640,
+ addBypassSecret: IS_PREVIEW,
+ }))
.then(response => response.ok)
.catch(() => false);
diff --git a/src/platforms/next-image.ts b/src/platforms/next-image.ts
index 6e2bbb6d..23bc71b6 100644
--- a/src/platforms/next-image.ts
+++ b/src/platforms/next-image.ts
@@ -14,13 +14,19 @@ export type NextImageSize = NextCustomSize | NextImageDeviceSize;
export const MAX_IMAGE_SIZE: NextImageSize = 3840;
-export const getNextImageUrlForRequest = (
- imageUrl: string,
- size: NextImageSize,
+export const getNextImageUrlForRequest = ({
+ imageUrl,
+ size,
quality = IMAGE_QUALITY,
baseUrl = BASE_URL,
- addBypassSecret = false,
-) => {
+ addBypassSecret,
+}: {
+ imageUrl: string
+ size: NextImageSize
+ quality?: number
+ baseUrl?: string
+ addBypassSecret?: boolean
+}) => {
const url = new URL(`${baseUrl}/_next/image`);
url.searchParams.append('url', imageUrl);
@@ -38,6 +44,10 @@ export const getNextImageUrlForRequest = (
// generating blur data or image thumbnails for AI text generation
export const getNextImageUrlForManipulation = (
imageUrl: string,
- addBypassSecret = false,
+ addBypassSecret: boolean,
) =>
- getNextImageUrlForRequest(imageUrl, 640, 90, undefined, addBypassSecret);
+ getNextImageUrlForRequest({
+ imageUrl,
+ size: 640,
+ addBypassSecret,
+ });