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),
+ })}