Gwk-Cultural-Park/components/CoverImage.tsx
2024-09-07 08:40:25 +07:00

49 lines
1.1 KiB
TypeScript

import cn from 'classnames'
import { urlForImage } from 'lib/sanity.image'
import Image from 'next/image'
import Link from 'next/link'
interface CoverImageProps {
title: string
slug?: string
image: any
priority?: boolean
}
export default function CoverImage(props: CoverImageProps) {
const { title, slug, image: source, priority } = props
const image = source?.asset?._ref ? (
<div
className={cn('shadow-small', {
'hover:shadow-medium transition-shadow duration-200': slug,
})}
>
<Image
className="h-auto w-full"
width={2000}
height={1000}
alt={`${title}`}
src={urlForImage(source).height(1000).width(2000).url()}
sizes="100vw"
priority={priority}
// placeholder="blur"
/>
</div>
) : (
<div style={{ paddingTop: '50%', backgroundColor: '#ddd' }} />
)
return (
<div className="sm:mx-0">
{slug ? (
<Link href={`/posts/${slug}`} aria-label={title}>
{image}
</Link>
) : (
image
)}
</div>
)
}