import { StaticImageData } from "next/image";

/**
 * Validates and normalizes image sources for Next.js Image components.
 * Prevents console errors caused by empty strings (""), empty objects ({}),
 * or invalid data types returned from CMS/APIs.
 */
export function getImageSrc(img: any): string | StaticImageData | null {
    if (!img) return null;
    if (typeof img === "string") {
        const trimmed = img.trim();
        return trimmed !== "" ? trimmed : null;
    }
    if (typeof img === "object") {
        if (typeof img.src === "string" && img.src.trim() !== "") {
            return img as StaticImageData;
        }
        if (typeof img.url === "string" && img.url.trim() !== "") {
            return img.url;
        }
    }
    return null;
}
