diff --git a/src/image-response/RecipeImageResponse.tsx b/src/image-response/RecipeImageResponse.tsx index f754faae..c007432f 100644 --- a/src/image-response/RecipeImageResponse.tsx +++ b/src/image-response/RecipeImageResponse.tsx @@ -6,7 +6,8 @@ import type { NextImageSize } from '@/platforms/next-image'; import { formatTag } from '@/tag'; import { TbChecklist } from 'react-icons/tb'; import { generateRecipeText, getPhotoWithRecipeFromPhotos } from '@/recipe'; - +import PhotoFilmSimulationIcon from '@/simulation/PhotoFilmSimulationIcon'; +import { isStringFilmSimulation } from '@/platforms/fujifilm/simulation'; const MAX_RECIPE_LINES = 8; export default function RecipeImageResponse({ @@ -97,6 +98,9 @@ export default function RecipeImageResponse({ }} />
{text} + {isStringFilmSimulation(text) && +
+ +
}
))} diff --git a/src/platforms/fujifilm/simulation.ts b/src/platforms/fujifilm/simulation.ts index 9c92457d..5dce5078 100644 --- a/src/platforms/fujifilm/simulation.ts +++ b/src/platforms/fujifilm/simulation.ts @@ -214,6 +214,17 @@ export const FILM_SIMULATION_FORM_INPUT_OPTIONS = Object )) .sort((a, b) => a.label.localeCompare(b.label)); +const ALL_POSSIBLE_FILM_SIMULATION_LABELS = Object + .values(FILM_SIMULATION_LABELS) + .flatMap(({ small, medium, large }) => [ + small.toLocaleLowerCase(), + medium.toLocaleLowerCase(), + large.toLocaleLowerCase(), + ]); + +export const isStringFilmSimulation = (simulation: string) => + ALL_POSSIBLE_FILM_SIMULATION_LABELS.includes(simulation.toLocaleLowerCase()); + export const labelForFilmSimulation = (simulation: FujifilmSimulation) => FILM_SIMULATION_LABELS[simulation];