diff --git a/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.test.tsx b/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.test.tsx index d2f843139..530e239e0 100644 --- a/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.test.tsx +++ b/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.test.tsx @@ -155,6 +155,53 @@ describe('ImageCanvasSelectedLayerToolbarView', () => { expect(props.onDownloadLayer).toHaveBeenCalledWith(layer); }); + it('removes raster edit actions for video and character animation layers', () => { + renderSelectedToolbar({ + selectedLayer: createLayer({ + title: '生成视频', + src: '/generated/video.mp4', + mediaType: 'video', + assetKind: 'video', + }), + }); + const videoToolbar = screen.getByRole('toolbar', { name: '图片工具栏' }); + + expect( + within(videoToolbar).queryByRole('button', { name: '裁扩按钮' }), + ).toBeNull(); + expect( + within(videoToolbar).queryByRole('button', { name: '去除背景按钮' }), + ).toBeNull(); + expect( + within(videoToolbar).getAllByRole('button').map((button) => + button.getAttribute('aria-label'), + ), + ).toEqual(['快速编辑', '改造', '下载按钮']); + + cleanup(); + renderSelectedToolbar({ + selectedLayer: createLayer({ + title: '角色动作', + src: '/generated/action/frame-01.png', + mediaType: 'image-sequence', + assetKind: 'character-animation', + }), + }); + const actionToolbar = screen.getByRole('toolbar', { name: '图片工具栏' }); + + expect( + within(actionToolbar).queryByRole('button', { name: '裁扩按钮' }), + ).toBeNull(); + expect( + within(actionToolbar).queryByRole('button', { name: '去除背景按钮' }), + ).toBeNull(); + expect( + within(actionToolbar).getAllByRole('button').map((button) => + button.getAttribute('aria-label'), + ), + ).toEqual(['快速编辑', '改造', '下载按钮']); + }); + it('renders character animation only for character layers', () => { const layer = createLayer({ sourceType: 'generated', diff --git a/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.tsx b/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.tsx index c7f22d13a..e8d5d67c9 100644 --- a/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.tsx +++ b/src/components/image-editor/ImageCanvasSelectedLayerToolbarView.tsx @@ -68,6 +68,11 @@ export function ImageCanvasSelectedLayerToolbarView({ ); } + const canRasterEdit = + selectedLayer.mediaType !== 'video' && + selectedLayer.mediaType !== 'image-sequence' && + selectedLayer.assetKind !== 'character-animation'; + return (