"use client"; import Link from "next/link"; import Image from "next/image"; import { useMemo, useState } from "react"; import { urlFor } from "@/lib/sanityImage"; import { ARTIST_PLACEHOLDER_SRC } from "@/lib/constants"; import type { SanityImageSource } from "@sanity/image-url"; export type ArtistCardProps = { name?: string; subtitle?: string; image?: SanityImageSource; href: string; label?: string; className?: string; }; export function useCardImage(image?: SanityImageSource) { const [imgError, setImgError] = useState(false); const src = useMemo(() => { if (imgError || !image) return ARTIST_PLACEHOLDER_SRC; return urlFor(image).url(); }, [image, imgError]); return { src, onError: () => setImgError(true) }; } export function ArtistCard({ name, subtitle, image, href, label = "Artist", className = "", }: ArtistCardProps) { const { src, onError } = useCardImage(image); return (