29 lines
541 B
TypeScript
29 lines
541 B
TypeScript
"use client";
|
|
|
|
import Image, { ImageProps } from "next/image";
|
|
import { useState } from "react";
|
|
|
|
interface ImageWithFallbackProps extends Omit<ImageProps, "src" | "alt"> {
|
|
src: string;
|
|
alt: string;
|
|
fallbackSrc?: string;
|
|
}
|
|
|
|
export default function ImageWithFallback({
|
|
src,
|
|
alt,
|
|
fallbackSrc = "/clipboard.svg",
|
|
...props
|
|
}: ImageWithFallbackProps) {
|
|
const [imgSrc, setImgSrc] = useState(src);
|
|
|
|
return (
|
|
<Image
|
|
{...props}
|
|
src={imgSrc}
|
|
alt={alt}
|
|
onError={() => setImgSrc(fallbackSrc)}
|
|
/>
|
|
);
|
|
}
|