Streamline nextimageurl signatures

This commit is contained in:
Sam Becker 2025-03-14 22:54:27 -05:00
parent 1ff7404f6e
commit fd89e2b48a
4 changed files with 30 additions and 24 deletions

View File

@ -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 }),
},
});

View File

@ -69,13 +69,11 @@ export default function ImagePhotoGrid({
}}
>
<img {...{
src: getNextImageUrlForRequest(
url,
nextImageWidth,
undefined,
undefined,
IS_PREVIEW,
),
src: getNextImageUrlForRequest({
imageUrl: url,
size: nextImageWidth,
addBypassSecret: IS_PREVIEW,
}),
style: {
...imageStyle,
width: '100%',

View File

@ -321,13 +321,11 @@ export const getKeywordsForPhoto = (photo: Photo) =>
export const isNextImageReadyBasedOnPhotos = async (
photos: Photo[],
): Promise<boolean> =>
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);

View File

@ -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,
});