Files
gridpilot.gg/apps/website/components/shared/SafeImage.tsx
2026-01-18 13:26:35 +01:00

25 lines
544 B
TypeScript

import React, { useState } from 'react';
import { Image as UiImage } from '@/ui/Image';
interface SafeImageProps extends React.ComponentProps<typeof UiImage> {
fallbackComponent?: React.ReactNode;
}
export function SafeImage({ fallbackComponent, ...props }: SafeImageProps) {
const [error, setError] = useState(false);
if (error && fallbackComponent) {
return <>{fallbackComponent}</>;
}
return (
<UiImage
{...props}
onError={(e) => {
setError(true);
props.onError?.(e);
}}
/>
);
}