تصویر امن (SafeImage)
کامپوننت تصویر با مدیریت خطا و نمایش fallback خودکار
معرفی
کامپوننت SafeImage یک wrapper برای تگ <img> است که در صورت خطا در بارگذاری تصویر، یک UI جایگزین نمایش میدهد. همچنین از loading="lazy" برای بهینهسازی عملکرد استفاده میکند.
چه زمانی استفاده نکنیم:
- برای تصاویر static که هرگز خراب نمیشوند — از تگ
<img>یاnext/imageاستفاده کنید - برای آواتار کاربران — از
AvatarباAvatarFallbackاستفاده کنید
حالت خطااستفاده
import { SafeImage } from '@parto-system-design/ui'<SafeImage src="/path/to/image.jpg" alt="توضیح تصویر" className="size-20 rounded-lg" />مثالها
با fallback سفارشی
<SafeImage src="/broken-url.jpg" alt="پروفایل" fallback={<Avatar>کاربر</Avatar>} />در حالت گرید
<div className="grid grid-cols-3 gap-4">
<SafeImage src="/img1.jpg" alt="تصویر ۱" className="aspect-square rounded-lg object-cover" />
<SafeImage src="/img2.jpg" alt="تصویر ۲" className="aspect-square rounded-lg object-cover" />
<SafeImage src="" alt="تصویر خراب" className="aspect-square rounded-lg" />
</div>بدون src
اگر src خالی یا undefined باشد، مستقیماً fallback نمایش داده میشود:
<SafeImage src={undefined} alt="بدون تصویر" className="size-16 rounded-full" />Props
دسترسیپذیری
- در حالت fallback،
role="img"وaria-labelتنظیم میشود - از
loading="lazy"برای بارگذاری تنبل استفاده میکند
راهنمای استفاده
بکنید
- از SafeImage برای تصاویر خارجی یا API که ممکن است خراب باشند استفاده کنید - همیشه
altتوصیفی و معنادار تنظیم کنید - برای تصاویر مهم،
fallbackسفارشی مناسب تعریف کنید
نکنید
- از SafeImage برای تصاویر static که قطعاً بارگذاری میشوند استفاده نکنید — سربار اضافی دارد - از SafeImage به جای Avatar برای تصاویر پروفایل استفاده نکنید — Avatar مدیریت fallback اختصاصی دارد
کامپوننتهای مرتبط
- Avatar — اگر نیاز به نمایش تصویر پروفایل کاربر دارید با fallback حروف اول نام