Vercel/src/simulation/PhotoFilmSimulation.tsx
2025-03-15 16:24:20 -05:00

51 lines
1.3 KiB
TypeScript

import { labelForFilmSimulation } from '@/platforms/fujifilm/simulation';
import PhotoFilmSimulationIcon from './PhotoFilmSimulationIcon';
import { pathForFilmSimulation } from '@/app/paths';
import { FilmSimulation } from '.';
import { FujifilmRecipe } from '@/platforms/fujifilm/recipe';
import EntityLink, {
EntityLinkExternalProps,
} from '@/components/primitives/EntityLink';
import clsx from 'clsx/lite';
export default function PhotoFilmSimulation({
simulation,
type = 'icon-last',
badged = true,
contrast = 'low',
prefetch,
countOnHover,
className,
}: {
simulation: FilmSimulation
countOnHover?: number
recipe?: FujifilmRecipe
} & EntityLinkExternalProps) {
const { small, medium, large } = labelForFilmSimulation(simulation);
return (
<EntityLink
label={medium}
labelSmall={small}
href={pathForFilmSimulation(simulation)}
icon={<PhotoFilmSimulationIcon
simulation={simulation}
className={clsx(
contrast === 'frosted' && 'text-black',
type === 'icon-only'
? 'translate-y-[-2.5px]'
: 'translate-y-[-1px]',
)}
/>}
title={`Film Simulation: ${large}`}
type={type}
className={className}
badged={badged}
contrast={contrast}
prefetch={prefetch}
hoverEntity={countOnHover}
iconWide
/>
);
}