fix(home): harden Qiniu featured previews
This commit is contained in:
parent
d1582f33e8
commit
afac47add2
@ -13,6 +13,16 @@ type LovartFeaturedGalleryProps = {
|
||||
setActiveCategory: (category: string) => void;
|
||||
};
|
||||
|
||||
function getFeaturedPreviewUrl(item: FeaturedImage) {
|
||||
const source = item.thumbnailUrl || item.originalUrl;
|
||||
|
||||
if (!source || !/^https:\/\/yybb\.top\//i.test(source) || source.includes("?")) {
|
||||
return source;
|
||||
}
|
||||
|
||||
return `${source}?imageView2/2/w/900/q/78`;
|
||||
}
|
||||
|
||||
export function LovartFeaturedGallery({
|
||||
activeCategory,
|
||||
categories,
|
||||
@ -60,10 +70,21 @@ export function LovartFeaturedGallery({
|
||||
className="group mb-[24px] block w-full cursor-pointer break-inside-avoid text-left"
|
||||
>
|
||||
<img
|
||||
src={item.thumbnailUrl || item.originalUrl}
|
||||
src={getFeaturedPreviewUrl(item)}
|
||||
alt={item.prompt || "灵感图"}
|
||||
loading="lazy"
|
||||
decoding="async"
|
||||
onError={(event) => {
|
||||
const image = event.currentTarget;
|
||||
const fallbackUrl = item.originalUrl || item.thumbnailUrl;
|
||||
|
||||
if (!fallbackUrl || image.dataset.fallbackApplied === "true") {
|
||||
return;
|
||||
}
|
||||
|
||||
image.dataset.fallbackApplied = "true";
|
||||
image.src = fallbackUrl;
|
||||
}}
|
||||
className="block h-auto w-full rounded-[6px] bg-[#e8e8e8] object-cover transition-transform duration-150 ease-out will-change-transform group-hover:scale-[1.008] dark:bg-[#1b1c20]"
|
||||
/>
|
||||
<div className="mt-[8px] flex h-[22px] items-center justify-between text-[11px] font-normal leading-none text-[#b8b8b8] dark:text-white/45">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user