import Link from "next/link"; import Image from "next/image"; import { urlFor } from "@/lib/sanityImage"; import type { SanityImageSource } from "@sanity/image-url"; export type BlogCardData = { _id?: string; title?: string; subtitle?: string; slug?: string; author?: string; publishDate?: string; category?: string; featuredImage?: SanityImageSource; }; type Props = { blog: BlogCardData; className?: string; }; function formatPublishDate(dateString?: string) { if (!dateString) return null; return new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric", year: "numeric", }).format(new Date(dateString)); } export function BlogCard({ blog, className = "" }: Props) { const url = blog.slug ? `/blog/${blog.slug}` : "#"; const imageSrc = blog.featuredImage ? urlFor(blog.featuredImage).url() : null; return (
{imageSrc ? ( {blog.title ) : (
)}

{blog.title}

{blog.subtitle || blog.category}

{formatPublishDate(blog.publishDate)}
); }