'use client'; import React from 'react'; import { processImageUrl, tryApplyDoubanImageFallback } from '@/lib/utils'; interface ProxyImageProps extends React.ImgHTMLAttributes { originalSrc: string; displaySrc?: string; retryDelay?: number; retryOnError?: boolean; } const ProxyImage: React.FC = ({ originalSrc, displaySrc, retryDelay = 2000, retryOnError = true, onError, src: _src, ...props }) => { const handleError = (e: React.SyntheticEvent) => { const img = e.currentTarget; if (tryApplyDoubanImageFallback(img, originalSrc)) { return; } if (retryOnError && !img.dataset.retried) { img.dataset.retried = 'true'; window.setTimeout(() => { img.src = displaySrc || processImageUrl(originalSrc); }, retryDelay); } onError?.(e); }; return ( ); }; export default ProxyImage;