diff --git a/src/components/image-editor/useImageCanvasAssetExportWorkflow.test.tsx b/src/components/image-editor/useImageCanvasAssetExportWorkflow.test.tsx index 8641b149b..14284f82b 100644 --- a/src/components/image-editor/useImageCanvasAssetExportWorkflow.test.tsx +++ b/src/components/image-editor/useImageCanvasAssetExportWorkflow.test.tsx @@ -154,6 +154,9 @@ describe('useImageCanvasAssetExportWorkflow', () => { fireEvent.click(screen.getByRole('button', { name: '下载一个选中素材' })); await waitFor(() => expect(downloads).toHaveLength(1)); expect(downloads[0]?.name).toMatch(/^素材A-\d{8}-\d{6}\.png$/u); + expect(screen.getByTestId('status').textContent).toBe( + 'success:选中素材已导出', + ); fireEvent.click(screen.getByRole('button', { name: '下载多个选中素材' })); await waitFor(() => expect(downloads).toHaveLength(2)); diff --git a/src/components/image-editor/useImageCanvasAssetExportWorkflow.ts b/src/components/image-editor/useImageCanvasAssetExportWorkflow.ts index db7d1221c..7c15dbf35 100644 --- a/src/components/image-editor/useImageCanvasAssetExportWorkflow.ts +++ b/src/components/image-editor/useImageCanvasAssetExportWorkflow.ts @@ -282,7 +282,7 @@ export function useImageCanvasAssetExportWorkflow({ ) => { const exportMode = options.mode ?? 'spine-json'; if (!layer) { - return; + return false; } if (layer.mediaType === 'image-sequence') { try { @@ -300,13 +300,14 @@ export function useImageCanvasAssetExportWorkflow({ message: '当前浏览器不支持素材下载', }); } + return downloaded; } catch { setAssetExportStatus({ tone: 'error', message: '序列帧导出失败', }); + return false; } - return; } try { @@ -326,11 +327,13 @@ export function useImageCanvasAssetExportWorkflow({ message: '当前浏览器不支持素材下载', }); } + return downloaded; } catch { setAssetExportStatus({ tone: 'error', message: '素材导出失败', }); + return false; } }, [], @@ -649,7 +652,15 @@ export function useImageCanvasAssetExportWorkflow({ setIsExportingAssets(true); setAssetExportStatus(null); try { - await exportLayerImage(exportableLayers[0] ?? null); + const downloaded = await exportLayerImage( + exportableLayers[0] ?? null, + ); + if (downloaded) { + setAssetExportStatus({ + tone: 'success', + message: '选中素材已导出', + }); + } } finally { isExportingAssetsRef.current = false; setIsExportingAssets(false);