Files
gridpilot.gg/apps/website/components/shared/SafeImage.tsx
Marc Mintel 09632d004d
Some checks failed
CI / lint-typecheck (pull_request) Failing after 12s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped
code quality
2026-01-26 22:16:33 +01:00

26 lines
558 B
TypeScript

'use client';
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);
}}
/>
);
}