import { Link } from 'react-router-dom'; import type { EditorialTileSectionPayload } from '@homaroma/types'; import { useTranslation } from 'react-i18next'; import { getLocalizedField } from '../utils/localization'; interface DynamicEditorialTileProps { payload: EditorialTileSectionPayload; } export default function DynamicEditorialTile({ payload }: DynamicEditorialTileProps) { const { i18n } = useTranslation(); const lang = i18n.language; const { imageUrl, imagePosition = 'left', imageAspectRatio = 'square', buttonLink } = payload; const title = getLocalizedField(payload.title, lang); const description = getLocalizedField(payload.description, lang); const buttonText = getLocalizedField(payload.buttonText, lang); const getAspectClass = (ratio?: string) => { switch (ratio) { case 'portrait': return 'aspect-[3/4]'; case 'tall': return 'aspect-[2/3]'; case 'auto': return 'aspect-auto'; case 'square': default: return 'aspect-square'; } }; const renderTitle = (text: string) => { if (!text) return null; return text.split('[').map((part, i) => { if (part.includes(']')) { const [accent, rest] = part.split(']'); return ( {accent} {rest} ); } return {part}; }); }; return (
{title} { (e.target as HTMLImageElement).style.display = 'none'; }} />

{renderTitle(title) || title}

{description}

{buttonText && buttonLink && (
{buttonText}
)}
); }