diff --git a/src/components/image-editor/ImageCanvasWorldView.tsx b/src/components/image-editor/ImageCanvasWorldView.tsx index 8b6fcf200..4242e66ad 100644 --- a/src/components/image-editor/ImageCanvasWorldView.tsx +++ b/src/components/image-editor/ImageCanvasWorldView.tsx @@ -1024,6 +1024,52 @@ function ImageCanvasImageSequenceLayer({ ); } +/** + * 图层正文按媒体类型 / 资源类别分派:早返回写成一列判断,新增类型不会再加深三元链。 + */ +function renderCanvasLayerMedia({ + layer, + mediaTransform, + isHovered, + onSelectLayer, +}: { + layer: CanvasLayer; + mediaTransform?: string; + isHovered: boolean; + onSelectLayer: () => void; +}) { + if (layer.mediaType === 'audio') { + return ( + + ); + } + if (layer.mediaType === 'video') { + return ( + + ); + } + if (layer.mediaType === 'image-sequence') { + return ( + + ); + } + if (layer.assetKind === 'model3d') { + return ( + + ); + } + return ( + + ); +} + const MemoizedCanvasLayerNode = memo(function CanvasLayerNode({ layer, isSelected, @@ -1078,33 +1124,12 @@ const MemoizedCanvasLayerNode = memo(function CanvasLayerNode({ onMouseLeave={() => handlers.onLayerMouseLeave(layer.id)} aria-label={`选择${layer.title}`} > - {layer.mediaType === 'audio' ? ( - handlers.onSelectLayer(layer.id)} - /> - ) : layer.mediaType === 'video' ? ( - - ) : layer.mediaType === 'image-sequence' ? ( - - ) : layer.assetKind === 'model3d' ? ( - - ) : ( - - )} + {renderCanvasLayerMedia({ + layer, + mediaTransform, + isHovered, + onSelectLayer: () => handlers.onSelectLayer(layer.id), + })}