等待推荐页运行态全部资源

推荐页 ready 持续观察运行态图片、背景、音视频和资源 pending 标记
资源换签与玩法图集解析中通过隐藏标记阻止遮罩提前消失
补齐拼图、跳一跳、抓大鹅和敲木鱼运行态资源等待接入
补充推荐页资源等待回归测试和团队文档
This commit is contained in:
2026-06-08 17:49:28 +08:00
parent ccb5023197
commit 52c6f4282f
12 changed files with 802 additions and 125 deletions

View File

@@ -22,21 +22,25 @@ export function useResolvedAssetReadUrl(
const [resolvedUrl, setResolvedUrl] = useState(
shouldResolve ? '' : normalizedSource,
);
const [isResolving, setIsResolving] = useState(shouldResolve);
useEffect(() => {
if (!normalizedSource) {
setResolvedUrl('');
setIsResolving(false);
return;
}
if (!shouldResolve) {
setResolvedUrl(normalizedSource);
setIsResolving(false);
return;
}
let cancelled = false;
// 生成资源通常是 OSS 私有对象;签名 URL 未就绪前不能把裸 generated 路径交给 img 触发无鉴权 GET。
setResolvedUrl('');
setIsResolving(true);
void resolveAssetReadUrl(normalizedSource, {
expireSeconds: options.expireSeconds,
@@ -52,6 +56,11 @@ export function useResolvedAssetReadUrl(
// 签名失败时保持空 src避免继续请求无签名的私有对象兼容路径。
setResolvedUrl('');
}
})
.finally(() => {
if (!cancelled) {
setIsResolving(false);
}
});
return () => {
@@ -66,7 +75,7 @@ export function useResolvedAssetReadUrl(
return {
resolvedUrl,
isResolving: shouldResolve && !resolvedUrl,
isResolving,
shouldResolve,
};
}