发布表单登记截图预览地址

- useGameDistributionPublishForm 的 createPanelScreenshotEntry 把生成的 blob 地址加入 objectUrlsRef,删除截图与卸载时的回收分支终于能命中
This commit is contained in:
2026-10-06 18:52:50 +08:00
parent 10ca2341a1
commit 49d6f8db2f
@@ -428,10 +428,14 @@ export function useGameDistributionPublishForm({
function createPanelScreenshotEntry(file: File): PanelScreenshotEntry {
const fileError = resolvePanelImageFileError(file, 'screenshot');
const previewUrl = buildPanelImagePreviewUrl(file);
// 与封面走同一条登记:不登记的话 `removeScreenshot` 的 revoke 分支永远命中不了,
// 卸载清理也遍历不到这些地址,截图预览会一直泄漏到页面关闭。
if (previewUrl) objectUrlsRef.current.add(previewUrl);
return {
id: createPanelScreenshotId(),
name: file.name.trim() || '游戏截图',
previewUrl: buildPanelImagePreviewUrl(file),
previewUrl,
assetObjectId: null,
status: fileError ? 'failed' : 'uploading',
error: fileError || null,