import React, { useEffect, useState } from 'react'; import { Avatar, AvatarFallback } from '@/components/ui/avatar'; import { Skeleton } from '@/components/ui/skeleton'; import { getResourceImage } from '@/plugins/imagePlugin'; interface ResourceImageProps { resourceName: string; className?: string; alt?: string; fallback?: string; } const ResourceImage: React.FC = ({ resourceName, className = "h-12 w-12", alt = "이미지", fallback = "ZY" }) => { const [loading, setLoading] = useState(true); const [error, setError] = useState(false); const [imageSrc, setImageSrc] = useState(""); useEffect(() => { const loadResourceImage = async () => { try { const imgSrc = await getResourceImage(resourceName); setImageSrc(imgSrc); setLoading(false); } catch (err) { console.error('이미지 로드 실패:', err); setError(true); setLoading(false); } }; loadResourceImage(); }, [resourceName]); return ( {loading ? (
) : error ? ( {fallback} ) : ( {alt} setError(true)} /> )}
); }; export default ResourceImage;