import type { Photo } from '../photo'; import ImageCaption from './components/ImageCaption'; import ImagePhotoGrid from './components/ImagePhotoGrid'; import ImageContainer from './components/ImageContainer'; import type { NextImageSize } from '@/platforms/next-image'; import { formatTag } from '@/tag'; import { TbChecklist } from 'react-icons/tb'; import { generateRecipeText, getPhotoWithRecipeFromPhotos } from '@/recipe'; const MAX_RECIPE_LINES = 8; export default function RecipeImageResponse({ recipe, photos, width, height, fontFamily, }: { recipe: string, photos: Photo[] width: NextImageSize height: number fontFamily: string }) { const photo = getPhotoWithRecipeFromPhotos(photos); let recipeLines = photo?.recipeData && photo.filmSimulation ? generateRecipeText({ recipe: photo.recipeData, simulation: photo.filmSimulation!, iso: photo.iso!.toString(), }) : []; if (recipeLines && recipeLines.length > MAX_RECIPE_LINES) { recipeLines = recipeLines.slice(0, MAX_RECIPE_LINES); recipeLines[MAX_RECIPE_LINES - 1] = '•••'; } return (
, title: formatTag(recipe).toLocaleUpperCase(), }}> {photo?.recipeData &&
{recipeLines.map(text => (
{text}
))}
} ); }