diff --git a/src/photo/actions.ts b/src/photo/actions.ts index 54472a05..29d7ac2a 100644 --- a/src/photo/actions.ts +++ b/src/photo/actions.ts @@ -529,7 +529,7 @@ export const syncPhotoAction = async (photoId: string, isBatch?: boolean) => semanticDescription: aiSemanticDescription, } = await generateAiImageQueries( imageResizedBase64, - photo.updateStatus.isMissingAiTextFields, + photo.updateStatus?.isMissingAiTextFields, undefined, isBatch, ); diff --git a/src/photo/index.ts b/src/photo/index.ts index 80d8479d..9a9eef1f 100644 --- a/src/photo/index.ts +++ b/src/photo/index.ts @@ -114,7 +114,7 @@ export interface Photo extends Omit { tags: string[] recipeData?: FujifilmRecipe colorData?: PhotoColorData - updateStatus: PhotoUpdateStatus + updateStatus?: PhotoUpdateStatus } export const parsePhotoFromDb = (photoDbRaw: PhotoDb): Photo => { diff --git a/src/photo/update/index.ts b/src/photo/update/index.ts index a123875b..67187208 100644 --- a/src/photo/update/index.ts +++ b/src/photo/update/index.ts @@ -63,21 +63,21 @@ export const generatePhotoUpdateStatus = ( }); export const photoNeedsToBeUpdated = (photo: Photo) => - photo.updateStatus.isOutdated || - photo.updateStatus.isMissingAiTextFields.length > 0 || - photo.updateStatus.isMissingColorData; + photo.updateStatus?.isOutdated || + (photo.updateStatus?.isMissingAiTextFields ?? []).length > 0 || + photo.updateStatus?.isMissingColorData; export const isPhotoOnlyMissingColorData = (photo?: Photo) => - photo?.updateStatus.isMissingColorData && + photo?.updateStatus?.isMissingColorData && !photo?.updateStatus.isOutdated && (photo?.updateStatus.isMissingAiTextFields.length ?? 0) === 0; export const getPhotoUpdateStatusText = (photo: Photo) => { const { isOutdated, - isMissingAiTextFields, + isMissingAiTextFields = [], isMissingColorData, - } = photo.updateStatus; + } = photo.updateStatus ?? {}; const cta = 'sync to update'; if (isOutdated) { @@ -103,13 +103,13 @@ export const getPhotoUpdateStatusText = (photo: Photo) => { export const getPhotosUpdateStatusCounts = (photos: Photo[]) => { const photosCountOutdated = photos.filter( - photo => photo.updateStatus.isOutdated, + photo => photo.updateStatus?.isOutdated, ).length; const photosCountMissingAiText = photos.filter( - photo => photo.updateStatus.isMissingAiTextFields.length > 0, + photo => (photo.updateStatus?.isMissingAiTextFields ?? []).length > 0, ).length; const photosCountMissingColorData = photos.filter( - photo => photo.updateStatus.isMissingColorData, + photo => photo.updateStatus?.isMissingColorData, ).length; return {