import { UploadImageFragment } from "graphql/generated"; import { getAssetURL, getImgSizesByQuality, ImageQuality } from "helpers/img"; import { Immutable } from "helpers/types"; import Image, { ImageProps } from "next/image"; interface Props { className?: string; image?: UploadImageFragment | string; quality?: ImageQuality; alt?: ImageProps["alt"]; layout?: ImageProps["layout"]; objectFit?: ImageProps["objectFit"]; priority?: ImageProps["priority"]; } export default function Img(props: Immutable): JSX.Element { if (typeof props.image === "string") { return ( {props.alt ); } else if (props.image?.width && props.image.height) { const imgSize = getImgSizesByQuality( props.image.width, props.image.height, props.quality ?? ImageQuality.Small ); return ( {props.alt ); } return <>; }