Skip to content

Commit 85bf20c

Browse files
committed
feat: Add Visualization to Output Nodes
1 parent 7544493 commit 85bf20c

3 files changed

Lines changed: 12 additions & 40 deletions

File tree

src/components/Editor/IOEditor/InputValueEditor/FormFields/FormFields.tsx

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import type { icons } from "lucide-react";
22
import { Activity, type ReactNode } from "react";
33

4-
import type { ArtifactDataResponse } from "@/api/types.gen";
5-
import { CopyText } from "@/components/shared/CopyText/CopyText";
4+
import type { ArtifactNodeResponse } from "@/api/types.gen";
5+
import IOCell from "@/components/shared/ReactFlow/FlowCanvas/TaskNode/TaskOverview/IOSection/IOCell/IOCell";
66
import { Button } from "@/components/ui/button";
77
import { Icon } from "@/components/ui/icon";
88
import { Input } from "@/components/ui/input";
99
import { BlockStack, InlineStack } from "@/components/ui/layout";
10-
import { Link } from "@/components/ui/link";
1110
import { Textarea } from "@/components/ui/textarea";
1211
import { Paragraph } from "@/components/ui/typography";
1312
import { cn } from "@/lib/utils";
1413
import type { InputSpec, OutputSpec } from "@/utils/componentSpec";
15-
import { convertArtifactUriToHTTPUrl } from "@/utils/URL";
1614

1715
type FormFieldAction = {
1816
icon: keyof typeof icons;
@@ -204,38 +202,13 @@ const TypeField = ({
204202

205203
const ArtifactField = ({
206204
io,
207-
artifactData,
205+
artifact,
208206
}: {
209207
io: InputSpec | OutputSpec;
210-
artifactData: ArtifactDataResponse;
208+
artifact: ArtifactNodeResponse;
211209
}) => (
212210
<FormField label="Artifact" id={`artifact-${io.name}`}>
213-
<BlockStack gap="3" className="p-2 border rounded-md bg-background">
214-
{artifactData.value && (
215-
<InlineStack gap="2">
216-
<Paragraph size="xs">Value:</Paragraph>
217-
<CopyText size="sm" className="font-light font-mono">
218-
{artifactData.value}
219-
</CopyText>
220-
</InlineStack>
221-
)}
222-
223-
{artifactData.uri && (
224-
<InlineStack gap="2" wrap="nowrap" blockAlign="start">
225-
<Paragraph size="xs">URI:</Paragraph>
226-
<Link
227-
external
228-
href={convertArtifactUriToHTTPUrl(
229-
artifactData.uri,
230-
artifactData.is_dir,
231-
)}
232-
className="text-xs whitespace-pre-wrap break-all"
233-
>
234-
{artifactData.uri}
235-
</Link>
236-
</InlineStack>
237-
)}
238-
</BlockStack>
211+
<IOCell artifact={artifact} name={io.name} type={io.type?.toString()} />
239212
</FormField>
240213
);
241214

src/components/Editor/IOEditor/OutputNameEditor/OutputNameEditor.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect, useState } from "react";
22

3-
import type { ArtifactDataResponse } from "@/api/types.gen";
3+
import type { ArtifactNodeResponse } from "@/api/types.gen";
44
import { LinkNodeButton } from "@/components/shared/Buttons/LinkNodeButton";
55
import ConfirmationDialog from "@/components/shared/Dialogs/ConfirmationDialog";
66
import { removeGraphOutput } from "@/components/shared/ReactFlow/FlowCanvas/utils/removeNode";
@@ -31,14 +31,14 @@ interface OutputNameEditorProps {
3131
output: OutputSpec;
3232
disabled?: boolean;
3333
connectedDetails: OutputConnectedDetails;
34-
artifactData?: ArtifactDataResponse | null;
34+
artifact?: ArtifactNodeResponse | null;
3535
}
3636

3737
export const OutputNameEditor = ({
3838
output,
3939
disabled,
4040
connectedDetails,
41-
artifactData,
41+
artifact,
4242
}: OutputNameEditorProps) => {
4343
const { transferSelection } = useNodeSelectionTransfer(outputNameToNodeId);
4444
const {
@@ -211,8 +211,8 @@ export const OutputNameEditor = ({
211211
inputName={output.name}
212212
/>
213213

214-
{disabled && artifactData && (
215-
<ArtifactField artifactData={artifactData} io={output} />
214+
{disabled && artifact && (
215+
<ArtifactField artifact={artifact} io={output} />
216216
)}
217217

218218
<InlineStack gap="4">

src/components/shared/ReactFlow/FlowCanvas/IONode/IONode.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,16 +149,15 @@ const IONode = ({ id, type, data, selected = false }: IONodeProps) => {
149149
output.name,
150150
);
151151

152-
const artifactData =
153-
artifacts?.output_artifacts?.[output.name]?.artifact_data;
152+
const artifact = artifacts?.output_artifacts?.[output.name];
154153

155154
setContent(
156155
<OutputNameEditor
157156
output={output}
158157
connectedDetails={outputConnectedDetails}
159158
key={output.name}
160159
disabled={readOnly}
161-
artifactData={artifactData}
160+
artifact={artifact}
162161
/>,
163162
);
164163
}

0 commit comments

Comments
 (0)