overleaf-cep/services/web/frontend/js/features/template-gallery/components/template-gallery-entry.tsx
2025-07-22 19:22:09 +02:00

29 lines
1.1 KiB
TypeScript

import { memo } from 'react'
import { cleanHtml } from '../../../../../modules/template-gallery/app/src/CleanHtml.mjs'
function TemplateGalleryEntry({ template }) {
return (
<div className={"gallery-thumbnail col-12 col-md-6 col-lg-4"}>
<a href={`/template/${template.id}`} className="thumbnail-link">
<div className="thumbnail">
<img
src={`/template/${template.id}/preview?version=${template.version}&style=thumbnail`}
alt={template.name}
/>
</div>
<span className="gallery-list-item-title">
<span className="caption-title">{template.name}</span>
<span className="badge-container"></span>
</span>
</a>
<div className="caption">
<p className="caption-description" dangerouslySetInnerHTML={{ __html: cleanHtml(template.description, 'plainText') }} />
</div>
<div className="author-name">
<div dangerouslySetInnerHTML={{ __html: cleanHtml(template.author, 'plainText') }} />
</div>
</div>
)
}
export default memo(TemplateGalleryEntry)