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
26 lines
558 B
TypeScript
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);
|
|
}}
|
|
/>
|
|
);
|
|
}
|