From 71217beeff32f771aaba4aeda97fd50d921c3b82 Mon Sep 17 00:00:00 2001 From: yun Date: Mon, 13 Jul 2026 17:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8E=E9=97=A8=E5=85=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/nodes/SmartAudioNode.tsx | 30 +++++++++++++++++-------- src/components/nodes/SmartImageNode.tsx | 4 ++-- src/components/nodes/SmartVideoNode.tsx | 30 +++++++++++++++++-------- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/components/nodes/SmartAudioNode.tsx b/src/components/nodes/SmartAudioNode.tsx index 3eda631b..64635bb9 100644 --- a/src/components/nodes/SmartAudioNode.tsx +++ b/src/components/nodes/SmartAudioNode.tsx @@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore"; import { SmartAudioNodeData } from "@/types"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; -import { deriveSmartAudioMode } from "@/utils/smartMediaMode"; +import { deriveSmartAudioMode, hasSmartAudioGenerationArtifact } from "@/utils/smartMediaMode"; import { AudioInputNodeView } from "./AudioInputNode"; import { GenerateAudioNodeView } from "./GenerateAudioNode"; import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule"; @@ -176,23 +176,27 @@ function SmartAudioEmptyView({ data, selected, addToGenerationHistory = false, + hideUploadToolbar = false, }: { id: string; data: SmartAudioNodeData; selected?: boolean; addToGenerationHistory?: boolean; + hideUploadToolbar?: boolean; }) { const isUploading = data.uploadStatus === "loading"; return (
- - + + {!hideUploadToolbar && ( + + )} {isUploading && (
@@ -210,7 +214,15 @@ export function SmartAudioNode({ id, data, selected }: NodeProps; + return ( + + ); } return ; } diff --git a/src/components/nodes/SmartImageNode.tsx b/src/components/nodes/SmartImageNode.tsx index 9d53c09f..713c8f13 100644 --- a/src/components/nodes/SmartImageNode.tsx +++ b/src/components/nodes/SmartImageNode.tsx @@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore"; import { SmartImageNodeData } from "@/types"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; -import { deriveSmartImageMode, isSmartImageAutoTaskNode } from "@/utils/smartMediaMode"; +import { deriveSmartImageMode, hasSmartImageGenerationArtifact, isSmartImageAutoTaskNode } from "@/utils/smartMediaMode"; import { getPopiImageAssetPreview, resolvePopiImageAsset } from "@/lib/popiAssetApi"; import { GenerateImageNodeView } from "./GenerateImageNode"; import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule"; @@ -363,7 +363,7 @@ export function SmartImageNode({ id, data, selected }: NodeProps ); } diff --git a/src/components/nodes/SmartVideoNode.tsx b/src/components/nodes/SmartVideoNode.tsx index 858fa609..2f7d30a8 100644 --- a/src/components/nodes/SmartVideoNode.tsx +++ b/src/components/nodes/SmartVideoNode.tsx @@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore"; import { SmartVideoNodeData } from "@/types"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; -import { deriveSmartVideoMode } from "@/utils/smartMediaMode"; +import { deriveSmartVideoMode, hasSmartVideoGenerationArtifact } from "@/utils/smartMediaMode"; import { getPopiVideoAssetPreview, resolvePopiVideoAsset } from "@/lib/popiAssetApi"; import { GenerateVideoNodeView } from "./GenerateVideoNode"; import { VideoInputNodeView } from "./VideoInputNode"; @@ -341,23 +341,27 @@ function SmartVideoNeutralView({ data, selected, addToGenerationHistory = false, + hideUploadToolbar = false, }: { id: string; data: SmartVideoNodeData; selected?: boolean; addToGenerationHistory?: boolean; + hideUploadToolbar?: boolean; }) { const isUploading = data.uploadStatus === "loading"; return (
- - + + {!hideUploadToolbar && ( + + )} {isUploading && (
@@ -379,7 +383,15 @@ export function SmartVideoNode({ id, data, selected }: NodeProps; + return ( + + ); } return ; }